'C#'에 해당되는 글 12건

  1. 2018.11.06 C# 기초다지기 - 상수
  2. 2018.11.05 C# 기초다지기 - 캡슐화
  3. 2018.11.05 C# 기초다지기 - 프로그램 구조
  4. 2018.11.05 C# 기초다지기 - 변수
  5. 2018.08.29 C# DB연동 1

C# 기초다지기 - 상수




안녕하세요 열코입니다.

이번시간에는 C# 프로그램에서 상수에 대한 사용법에 대해 알아보도록 하겠습니다.


1. 상수란?

- 상수란 프로그램이 실행 중 변경되지 않는 고정된 값을 말합니다. 

(이러한 고정 값을 컴퓨터 프로그래밍에서 리터럴 이라고 합니다.)

- 상수는 정수, 부동소수점, 문자, 문자열 상수가 존재하며 열거(enum) 상수도 있습니다.

- 상수는 일반 변수와 달리 정의한 이후에 값을 수정할 수 없습니다.

- 예를들어 파이(π)와 같은 값은 3.14...인 값이며 변하지 않는 값입니다. 이를 표현할 때 우리는 상수로 표현합니다.


2. 정수 리터럴

- 정수 리터럴은 10진수 또는 16진수 상수가 될 수 있습니다.

- 16진수의 접두어는 0x 또는 0X이며 10진수의 접두어는 없습니다.

- unsigned(부호가 없는) 정수 리터럴에 u 또는 U 접미어를 조합할 수 있습니다.

- long 타입의 정수 리터럴에 l 또는 L 접미어를 조합할 수 있습니다.


1
2
3
4
5
6
10 // 10진수
0x4b // 16진수
30 // int
30u // unsigned int
15l // long
15ul // unsigned long
cs


3. 부동 소수점 리터럴

- 부동 소수점 리터럴은 정수부분, 소수점, 소수부분 및 지수부분을 포함합니다.

- 부동 소수점 리터럴은 10진수 형식 또는 지수형식으로 나타낼 수 있습니다.


1
2
3.14159
314159E-5F
cs


4. 문자 리터럴

- 문자 리터럴은 작은 따옴표 ' ' 로 묶습니다.

- C#에는 \(백 슬래시)가 붙는 특정 문자(escape sequence)가 존재합니다.


Escape Sequence 

Value 

\\ 

\

\' 

' 

\" 

" 

\? 

? 

\a 

alert 

\b 

backspace 

\f 

form feed 

\n 

new line 

\r

carriage return 

\t 

horizontal tab 

\v 

vertical tab 


- 다음은 몇가지 escape sequence를 사용한 예제입니다.


1
2
3
4
5
6
7
8
9
using System;
 
namespace EscapeSequence {
    class Program {
        static void Main(string[] args) {
            Console.WriteLine("Hello\n\tWorld");
        }
    }
}
cs


- 결과


Hello

World


5. 문자열 리터럴

- 문자열 리터럴은 큰 따옴표 " " 또는 @ " " 로 묶습니다.

- 문자열에는 문자 리터럴과 escape sequence가 포함됩니다.

- 다음은 문자열 리터럴의 몇가지 예입니다.


1
2
3
4
5
"Hello"
"Hi, SEMOG"
"a \
b"
@"abc"
cs


6. 상수 정의하기

- 사용자가 일반 변수를 const 키워드를 사용하여 상수로 정의할 수 있습니다.

- 상수를 선언하는 동시에 값을 초기화 해야합니다.


1
const double PI = 3.14159;
cs



이상 'C# 상수'에 대해 알아보았습니다.

질문 사항은 모두 커뮤니티에서 받습니다. -> 커뮤니티 바로가기

메인 페이지로 이동하시면 더 많은 자료를 볼 수 있습니다.


'C#' 카테고리의 다른 글

C# 기초다지기 - 클래스  (0) 2018.11.08
C# 기초다지기 - 구조체  (0) 2018.11.08
C# 기초다지기 - 문자열  (2) 2018.11.07
C# 기초다지기 - 배열  (1) 2018.11.06
C# 기초다지기 - 캡슐화  (0) 2018.11.05
C# 기초다지기 - 프로그램 구조  (0) 2018.11.05
C# 기초다지기 - 변수  (0) 2018.11.05
C# DB연동  (1) 2018.08.29

C# 기초다지기 - 캡슐화




안녕하세요 열코입니다.

이번시간에는 캡슐화에 대해 알아볼건데요.

캡슐화는 객체 지향프로그래밍의 중요한 기능중 하나입니다.

캡슐화란 물리적, 논리적 패키지내에 하나이상의 항목을 포함하는 프로세스라고 정의됩니다.

C# 프로그램에서 캡슐화는 액세스 지정자에 의해 구현됩니다.

액세스 지정자는 클래스 멤버의 범위 및 가시성을 제한하며 다음과 같은 액세스 지정자를 지원합니다.


public, private, protected, internal, protected internal


1. public 액세스 지정자

public 액세스 지정자는 클래스 멤버 변수 및 함수를 다른 함수 및 객체에 표시할 수 있도록 합니다.

모든 public 멤버는 class 외부에서 액세스 할 수 있습니다.

다음 예제 코드를 참고하세요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
 
namespace TestApplication {
    class Semo {
        public int width;
        public int height;
 
        public double GetArea() {
            return (double)width * (double)height / 2.0;
        }
    }
    class Test {
        static void Main(string[] args) {
            Semo s = new Semo();
            s.width = 2;
            s.width = 4;
            Console.WriteLine("Area : {0}", s.GetArea());
        }
    }
}
cs


Semo 클래스의 멤버 변수 width, height와 멤버 함수 GetArea()는 모두 public 지정자로 되어있으므로,

15,16,17번 줄에서 Semo 클래스 객체 s를 통해 멤버 변수와 함수에 직접 접근이 가능한 모습입니다.


2. private 액세스 지정자

private 접근 지정자는 클래스 멤버 변수 및 멤버 함수를 다른 함수 및 객체에서 숨기도록 지정합니다.

동일한 클래스내부에서만 접근 가능하며, 클래스의 객체 또한 private 멤버에 접근할 수 없습니다.

따라서 클래스 외부에서 private 지정자에게 접근하기 위해서는 클래스 내부의 public 함수를 통해 접근할 수 있도록 합니다. 

대표적으로 getter와 setter를 예로들수 있는데요. 다음 예제 코드를 확인해주세요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
 
namespace TestApplication {
    class Semo {
        private int width;
        private int height;
 
        public void SetWidth(int width_) {
            width = width_;
        }
 
        public void SetHeight(int height_) {
            height = height_;
        }
 
        public int GetWidth() {
            return width;
        }
 
        public int GetHeight() {
            return height;
        }
    }
    class Test {
        static void Main(string[] args) {
            Semo s = new Semo();
            s.SetHeight(2):
            s.SetWidth(4);
            Console.WriteLine("Area : {0}", (double)s.GetWidth() * (double)s.GetHeight() / 2.0);
        }
    }
}
cs


8, 12번째 줄을 보시면 Set~() 함수를 통해 인수로 받은 값을 클래스 내 private 멤버 값을 초기화해주는 public 함수가 존재합니다. 이를 보통 setter라고 부릅니다.

16, 20번째 줄을 보시면 Get~() 함수를 통해 클래스 내 private 멤버 값을 반환하는 public 함수가 존재하며 이를 getter라 부릅니다.


3. protected 액세스 지정자

protected 접근 지정자는 하위(상속) 클래스가 상위(기본) 클래스의 멤버 변수 및 함수에 접근할 수 있도록합니다.

이는 C# 상속 장에서 자세히 다루도록 하겠습니다.


4. internal 액세스 지정자

C++ 클래스에서는 존재하지 않던 액세스 지정자입니다.

이 internal 접근 지정자는 클래스 멤버 변수 및 함수를 동일한 어셈블리의 파일 내에서만 접근할 수 있도록 합니다.


5. protected internal 액세스 지정자

이 접근 지정자 역시 상속 구현시 사용되는 접근 지정자며 동일한 어셈블리 파일 내 하위 클래스에서만 접근 가능하도록 합니다.


이상 'C# 캡슐화'에 대해 알아보았습니다.

질문 사항은 모두 커뮤니티에서 받습니다. -> 커뮤니티 바로가기

메인 페이지로 이동하시면 더 많은 자료를 볼 수 있습니다.



'C#' 카테고리의 다른 글

C# 기초다지기 - 구조체  (0) 2018.11.08
C# 기초다지기 - 문자열  (2) 2018.11.07
C# 기초다지기 - 배열  (1) 2018.11.06
C# 기초다지기 - 상수  (0) 2018.11.06
C# 기초다지기 - 프로그램 구조  (0) 2018.11.05
C# 기초다지기 - 변수  (0) 2018.11.05
C# DB연동  (1) 2018.08.29
[C#] 유니코드 한글로 변환하기  (0) 2018.08.22



안녕하세요 열코입니다.

이번시간에는 C# 프로그램의 구조에 대해 살펴보도록 하겠습니다.

C# 프로그램은 다음 부분으로 구성됩니다.


네임 스페이스 선언

클래스

클래스 메소드

클래스 속성

메인 메소드

명령문과 표현

코멘트


C# 프로그램은 하나 이상의 파일로 구성됩니다. 각 파일은 네임스페이스를 포함할 수 있습니다.

네임스페이스란 클래스, 구조체, 인터페이스 등의 모음을 뜻하며 

이런 요소들을 모두 포함하는 C# 프로그램의 기본 구조입니다.


C# 프로그램 프로젝트를 만들고 컴파일하는 과정을 간단히 설명합니다.

- Visual Studio 를 실행합니다.

- 프로젝트를 생성합니다.

- Visual C#을 선택하고 콘솔 응용프로그램을 선택합니다.

- 프로젝트의 이름을 정하면 새 프로젝트가 만들어집니다.


다음 간단한 Hello World 출력 코드를 살펴보도록 하겠습니다.


1
2
3
4
5
6
7
8
9
10
using System;
 
namespace HelloWorldApplication {
    class HelloWorld {
        static void Main(string[] args) {
            Console.WriteLine("Hello World");
            Console.ReadKey();
        }
    }
}
cs


이 코드를 컴파일한 후 실행하면 다음과 같은 결과가 실행됩니다.


Hello World


1줄 : using System;

- using 이라는 키워드는 네임스페이스를 포함시키는데 사용됩니다.

- System 이라는 네임스페이스를 프로그램에 포함시킵니다.

3줄 : namespace HelloWorldApplication { }

- 네임스페이스(클래스의 모음)를 선언합니다.

4줄 : class HelloWorld {}

- 클래스(메소드의 모음)를 선언합니다.

5줄 : static void Main(string[] args) {}

- Main 함수는 C#프로그램의 진입점입니다.

6줄 : Console.WriteLine("Hello World");

- 콘솔 클래스(System 네임스페이스)를 이용하여 화면에 "Hello World"를 출력합니다.

7줄 : Console.ReadKey();

- 프로그램이 키 입력을 기다립니다. (프로그램 자동 종료 방지)


이상 'C# 프로그램 구조'에 대해 알아보았습니다.

질문 사항은 모두 커뮤니티에서 받습니다. -> 커뮤니티 바로가기

메인 페이지로 이동하시면 더 많은 자료를 볼 수 있습니다.


'C#' 카테고리의 다른 글

C# 기초다지기 - 문자열  (2) 2018.11.07
C# 기초다지기 - 배열  (1) 2018.11.06
C# 기초다지기 - 상수  (0) 2018.11.06
C# 기초다지기 - 캡슐화  (0) 2018.11.05
C# 기초다지기 - 변수  (0) 2018.11.05
C# DB연동  (1) 2018.08.29
[C#] 유니코드 한글로 변환하기  (0) 2018.08.22
[C#] Visual Studio 2017 C# OpenCV 라이브러리 설치  (0) 2018.08.18

C# 기초다지기 - 변수




안녕하세요 열코입니다.

이번 시간에는 C# 프로그래밍 변수에 대해 알아보도록 하겠습니다.

변수는 프로그램에서 조작 할 수 있는 저장 영역에 주어진 이름을 말합니다.

C#의 각 변수에는 특정 유형이 있습니다. 다음과 같이 정의합니다.


내장된(Integral) 타입 : sbyte, byte, short, ushort, int, uint, long, ulong, char

(변수 앞에 u는 unsigned를 의미합니다.)

부동소수점(Floating Point) 타입 : float, double

10진수(Decimal) 타입 : decimal

불린(Boolean) 타입 : true, false

Nullable 타입 : Null 값을 가질 수 있는 데이터 유형

* C# 또한 enum과 같은 값의 정의 및 클래스와 같은 참조유형을 정의할 수 있습니다.


변수 정의하기

C#에서 변수 정의 구문은 다음과 같습니다.


1
<data_type> <variable_list>;
cs


여기서 data_type은 char, int, float, double... 또는 사용자 정의 데이터를 포함하는 유효한 C# 데이터 형식이며,

variable_list는 쉼표로 구분된 하나이상의 식별자 이름으로 구성됩니다.


예를들어 다음과 같이 변수를 정의할 수 있습니다.


1
2
3
4
int i, j, k;
char ch;
float f, lf;
double d; 
cs


변수 초기화하기

변수는 등호(=) 뒤에 상수를 붙여 초기화할 수 있습니다.

초기화는 변수의 값을 지정하는 행위를 말합니다. 일반적인 변수 초기화 방법은 다음과 같습니다.


1
2
3
4
5
6
7
int i;
= 10;
 
char ch;
ch = 'c';
 
double d = 1.0;
cs


1번째 줄 : int 형 변수 이름 i 선언

2번째 줄 : 변수 i의 값을 10으로 지정

4번째 줄 : char 형 변수 이름 ch 선언

5번째 줄 : 변수 ch의 값을 'c'로 지정

7번째 줄 : double 형 변수 이름 d를 선언과 동시에 값을 1.0으로 지정


변수를 초기화하는것은 매우 중요한 작업이며, 선언시 사용하지 않더라도 초기화하는 습관이 중요합니다.

기본적으로 정수형은 0, 참조형은 null로 초기화하는것이 기본입니다.

변수를 초기화하지 않는다면 프로그램 실행 중 예기치않은 결과를 초래할 수 있습니다.


LValue와 RValue

C#에는 두가지 종류의 표현식이 있습니다.

LValue : 연산자의 왼쪽 또는 오른쪽에 나타날 수 있습니다.

RValue : 연산자의 오른쪽에만 나타납니다.

통상적으로 값을 지정 받을 수 있는 변수는 LValue가 될 수 있고, 숫자 또는 문자 리터럴은 값이 지정되어 있으므로

RValue가 될 수 있습니다.


다음과 같은 명령문은 컴파일 오류를 발생시킵니다.

1
10 = 20;
cs



이상 'C# 변수'에 대해 알아보았습니다.

질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!

메인 페이지로 이동하시면 더 많은 자료를 볼 수 있습니다.

'C#' 카테고리의 다른 글

C# 기초다지기 - 문자열  (2) 2018.11.07
C# 기초다지기 - 배열  (1) 2018.11.06
C# 기초다지기 - 상수  (0) 2018.11.06
C# 기초다지기 - 캡슐화  (0) 2018.11.05
C# 기초다지기 - 프로그램 구조  (0) 2018.11.05
C# DB연동  (1) 2018.08.29
[C#] 유니코드 한글로 변환하기  (0) 2018.08.22
[C#] Visual Studio 2017 C# OpenCV 라이브러리 설치  (0) 2018.08.18

C# DB연동



C#에서 MySQL DataBase 연동하는 방법입니다.


먼저 C# 프로그램에서 MySQL과 연동하기 위해서는 Connector가 필요합니다.


아래 링크로 들어가 다운받아 줍니다.


https://dev.mysql.com/downloads/connector/net/8.0.html


설치가 완료되었으면 Visual Studio를 실행하고


C# - Windows Forms 앱을 만들어 줍니다. (저는 프로젝트 명을 DBConnectionTest 라고 지었습니다.)


그리고 아래와 같이 솔루션 탐색기의 참조를 우클릭하여 참조 추가(R)를 선택합니다.





아래와 같은 참조 관리자가 실행되는데 우측 상단에 검색란에 mysql이라고 검색합니다.


(만약 MySql.Data가 나타나지 않는다면 아랭의 찾아보기(B)를 눌러 위에서 설치한 Connect의 경로를 추가합니다)





참고로 제 데이터베이스 테이블입니다.


테이블 구조입니다.




데이터는 하나만 추가했습니다.






다시 Visual Studio로 와서 최상단에 아래와 같이 입력합니다.


using MySql.Data.MySqlClient;


참조했던 MySql.Data를 사용하겠다는 뜻입니다.


그리고 Form1 안에 아래와 같이 변수를 선언해줍니다.


public static String url = "SERVER=LOCALHOST; USER=; DATABASE=;" + 

            "PORT=3306; PASSWORD=; SSLMODE=NONE";

        // DB접속 URL 설정 - SERVER : DB주소, USER : ID명, DATABASE : DB명, PORT : TCP 포트번호

        // PASSWORD : 비밀번호, SSLMODE : NONE (SSL 사용안함)

private MySqlConnection mConnection; // DB접속

private MySqlCommand mCommand; // 쿼리문

private MySqlDataReader mDataReader; // 실행문


기본 설명은 주석으로 처리하였습니다.


Form1.cs[디자인]에서 폼을 더블클릭하여 Form1_Load를 생성하여 아래와 같이 작성합니다.


또한 TextBox도 하나 생성해줍시다.


private void Form1_Load(object sender, EventArgs e)

{

    mConnection = new MySqlConnection(url); // DB접속

    mCommand = new MySqlCommand(); // 쿼리문 생성

    mCommand.Connection = mConnection; // DB에 연결


    mCommand.CommandText = "SELECT * FROM TEST"; // 쿼리문 작성

    mConnection.Open(); // DB 오픈

    mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행


    while (mDataReader.Read()) // 전부 다 읽어 옴

    {

        // 여기서 부터 원하는 데이터를 받아와서 처리

        string tempName = mDataReader["name"].ToString();

        string tempPhone = mDataReader["phone"].ToString();

        string tempAge = mDataReader["age"].ToString(); 


        textBox1.AppendText("이름 : " + tempName + "\n");

        textBox1.AppendText("전화번호 : " + tempPhone + "\n");

        textBox1.AppendText("나이 : " + tempAge + "\n");

    }


    mConnection.Close(); // 사용 후 객체 닫기

}


아래는 전체 코드입니다.


using MySql.Data.MySqlClient;

using System;

using System.Windows.Forms;


namespace DBConnectionTest

{

    public partial class Form1 : Form

    {

        public static String url = "SERVER=LOCALHOST; USER=; DATABASE=;" + 

            "PORT=3306; PASSWORD=; SSLMODE=NONE";

        // DB접속 URL 설정 - SERVER : DB주소, USER : ID명, DATABASE : DB명, PORT : TCP 포트번호

        // PASSWORD : 비밀번호, SSLMODE : NONE (SSL 사용안함)

        private MySqlConnection mConnection; // DB접속

        private MySqlCommand mCommand; // 쿼리문

        private MySqlDataReader mDataReader; // 실행문

        

        public Form1()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            mConnection = new MySqlConnection(url); // DB접속

            mCommand = new MySqlCommand(); // 쿼리문 생성

            mCommand.Connection = mConnection; // DB에 연결


            mCommand.CommandText = "SELECT * FROM TEST"; // 쿼리문 작성

            mConnection.Open(); // DB 오픈

            mDataReader = mCommand.ExecuteReader(); // 쿼리문 실행


            while (mDataReader.Read()) // 전부 다 읽어 옴

            {

                // 여기서 부터 원하는 데이터를 받아와서 처리

                string tempName = mDataReader["name"].ToString();

                string tempPhone = mDataReader["phone"].ToString();

                string tempAge = mDataReader["age"].ToString(); 


                textBox1.AppendText("이름 : " + tempName + "\n");

                textBox1.AppendText("전화번호 : " + tempPhone + "\n");

                textBox1.AppendText("나이 : " + tempAge + "\n");

            }


            mConnection.Close(); // 사용 후 객체 닫기

        }

    }

}


실행화면입니다.


아래와 같이 데이터베이스에 존재하는 내용을 받아와 출력한 화면입니다.




이외에도 UPDATE, DELETE, INSERT와 같이 쿼리문과 코드만 살짝 수정해서 사용 할 수 있습니다.


지금까지 C#과 MySQL DataBase 연동하는 방법에 대해 알아보았습니다.






정보가 유익하셨다면 아래 공감버튼 눌러주시면 감사하겠습니다.

질문사항은 댓글로 달아주시면 성의껏 답변해드리겠습니다.




to Top