C#/C# 기본 18

[C#] 프로퍼티

클래스의 필드에 안전하게 접근하는 방법과 수정하는 방법을 제공한다. class CLASSNAME { 데이터 형식 FIELD_NAME; 접근한정자 데이터 형식 PROPERTY_NAME { get { return FIELD_NAME; } set { FIELD_NAME = value; } } } C#에서 클래스 필드를 접근하는 방법에 대해 GetXXX(), SetXXX()를 우아한 방법으로 선언할 수 있다. - 예시 class MyClass { private int data; public int Data { get { return data; } set { data = value; } } } 값을 변경하고 싶지 않다면 get만 선언하여 읽기 전용 프로퍼티를 만들 수 있다. class ReadOnlyClass {..

C#/C# 기본 2021.10.08

[C#] 인터페이스와 추상 클래스

인터페이스 interface interface ILogger { void WriteLog(string message); } 클래스와 비슷한 인터페이스는 필드를 가지지 않으며 메서드, 이벤트, 인덱서, 프로퍼티만 가질 수 있다. 정의한 메서드가 구현부가 없어도 되며 인터페이스를 상속하는 클래스에서 반드시 해당 메서드(혹은 프로퍼티)를 구현할 것을 강제한다. 인터페이스에 접근 제한자를 사용할 수 없으며 기본적으로 public이다. 인터페이스는 인스턴스화가 불가능하고 인터페이스 메서드를 모두 구현한 파생클래스를 인스턴스화 하여 사용한다. ILogger 인터페이스를 상속한 다양한 파생 클래스 class ConsoleLogger : ILogger { public void WriteLog(string message..

C#/C# 기본 2021.10.07

[C#] 클래스

C# 클래스 클래스 선언 class Cat { public string Name; public string Color; public void Meow() { Console.WriteLine("{0} : 야옹", Name); } // 기본 생성자 public Cat() { Name = "미정"; Color = "알 수 없음"; } ~Cat() { Console.Write("안녕 {0}", Name); } } 필드(속성)과 메소드로 구성된다. 기본 생성자를 정의하지 않으면 컴파일러가 만들어 주며 소멸자는 객체가 소멸될 때 호출된다. C# 클래스 인스턴스 static void Example1() { // 모든 C# 클래스는 복합 데이터 형식으로 참조 형식이다 // 힙 메모리에 개체를 동적 할당하고 그 메모리를..

C#/C# 기본 2021.10.06

[C#] 메서드

함수 매개변수에 사용가능한 ref/out 키워드 ref 키워드 - 참조 전달을 위해 사용할 수 있다. namespace CSharpClass { class Product { private int price = 100; public ref int GetPrice() { return ref price; } } } 참조 인자로 반환할 경우 return의 반환 변수에도 ref 키워드를 붙여야한다. class Program { static void Main(string[] args) { Product carrot = new Product(); // 참조 변수로 밖에서 값을 수정할 수 있다. ref int ref_local_price = ref carrot.GetPrice(); // 지역 변수로 취급된다. int ..

C#/C# 기본 2021.10.05

[C#] 분기문

C#에서 보이는 분기문 특징을 알아본다. if-elseif-else 문 C/C++와 용법이 같다. switch 문 일반적인 사용법은 C/C++와 용법이 같다. C#에서 모든 자료형을 담을 수 있는 object 자료형이 있었는데, object 변수에 대한 swtich 문 : object가 갖고 있는 값의 실제 타입으로 분기시킬 수 있다. 또한 string 값으로부터 switch 문을 사용해 분기 시키는 것도 가능하다. namespace HelloWorld { class MainApp { static void Main(string[] args) { object obj = "str"; switch (obj) { case int i: Console.WriteLine($"{i}는 int 형식입니다."); brea..

C#/C# 기본 2021.10.02

[C#] 연산자

C#에서 쓰이는 연산자의 종류 증가/감소 연산자 : ++, -- 산술 연산자 : +,-,/,* 비트 시프트 : 관계 연산자 : , =, !=, == 비트 논리 연산자 : &, ^, | 논리 연산자 : &&, || 할당 연산자 : =, *=, -=, *=, /=, >>=, = is as 7. 관계 연산자 == != 8. 비트 논리 연산자 & 9. 비트 논리 연산자 ^ 10. 비트 논리 연산자 | 11. 논리 연산자 && 12. 논리 연산자 || 13. null 병합 연산자 ?? 14. 조건 연산자 ?: 15. 할당 연산자 = *= /= %= += -= = &= ^= |= 간단한 예제 using System; using System.Globalization; using System.Collections; u..

C#/C# 기본 2021.10.02

[C#] 문자열

String 형식의 문자열과 C#에서 기본으로 제공하는 기능 함수를 살펴본다. - 문자열 탐색 IndexOf() : 지정된 문자나 문자열이 나타나는 첫번째 위치를 찾는다. LastIndexOf() : 끝에서 부터 지정된 문자나 문자열이 나타나는 첫번째 위치를 찾는다. StartsWith() : 지정된 문자열로 시작하는 지 bool로 판별한다. EndsWith() : 지정되 문자열로 끝나는 지 bool로 판별한다. Contains() : 지정된 문자열을 포함하는 지 bool로 판별한다. Replace(string src, string dst) : 지정된 문자열을 찾아서 모두 다른 문자열로 치환한다. - 문자열 변형 ToLower() : 모두 소문자로 ToUpper() : 모두 대문자로 Insert(int ..

C#/C# 기본 2021.10.02

[C#] 기본 자료형

일반 자료형 - 정수 계열 자료형 데이터 형식 부호 유무 크기 C++ 자료형 byte x 1바이트 unsigned char sbyte o 1바이트 char short o 2바이트 short ushort x 2바이트 unsigned short int o 4바이트 int uint x 4바이트 unsigned int long o 8바이트 long long int ulong x 8바이트 unsigned long long int char 유니코드 문자 2바이트 unsigned char - 부동 소수점 데이터 형식 설명 크기 float 단일 정밀도 (7개 자릿수) 4바이트 double 복수 정밀도 (15~16개 자릿수) 8바이트 decimal 29자리 데이터를 표현 16바이트 - 논리형 데이터 형식 크기 값 boo..

C#/C# 기본 2021.09.30