Language/C# 21

[C#] 구조체 (struct)

클래스보다 상대적으로 가벼운 특징이 있다. 클래스와 같이 메서드, 프로퍼티 등 거의 비슷하 구조를 가지고 있다. 상속 불가 인터페이스 구현 가능 using System; namespace HelloWorld { class Program { // 구조체 선언 struct ClassRoom // 명명규칙 : 대문자로 시작 { //public string name; // Error : null 불가 public string? name = null; public int age; public bool woman; // 생성자 public ClassRoom(string? name, int age, bool woman) { this.name = name; // 선언된 필드는 반드시 초기화되어야 함 this.age =..

Language/C# 2023.09.13

[C#] Value Type & Reference Type

Value Type System.ValueType 을 상속 string 을 제외한 기본 Type enum struct 특징: 상속될 수 없음 상대적으로 간단한 데이터 값을 저장하는 데 사용 (struct 는 예외적으로 큰 메모리를 차지하기도 한다.) Call by Value 형태 -> Copy 예) 다른 변수에 값 대입시 기존 변수값을 다른 변수 메모리에 대입 Referenct Type System.Array 을 상속 string Class 로 생성되어 인스턴스화된 객체 타입 특징: Class 를 정의하여 만듦 -> 상속 가능 상대적으로 복잡한 데이터와 기능에 사용 Call by Reference 형태 -> Heap 상의 객체에 대한 reference 를 전달 예) 새로운 인스턴스 생성하여 그 인스턴스가..

Language/C# 2023.09.13

[C#] 예외 처리

1. try ~ catch 문의 다양한 형태의 예 using System; namespace HelloWorld { class Program { static void Main(string[] args) { int a = 15; decimal b = 88m; float c = 20.3f; // [1] try { a = Convert.ToInt32(b / (decimal)c); } catch { Console.WriteLine("모든 예외를 잡고 싶을 때"); } // [2] try { a = Convert.ToInt32(b / (decimal)c); } catch (Exception e) // 모든 예외의 최상위 예외 클래스 { // 혹은 다른 Exception 종류 (특정 예외를 잡고 싶을 때) Cons..

Language/C# 2023.09.03

[C#] yield 키워드

yield 키워드는 IEnumerable 화 함께 쓰인다. yield 키워드로 리턴되는 값들을 선언하면, 위에서부터 순차대로 값을 리턴한다. 만일 yield 키워드로 리턴하는 함수가 한 번 호출되면 첫번째 리턴값을 리턴한다. 다을 foreach 문에서 해당 함수를 순차대로 호출해 보았다. class Program { static void Main(string[] args) { foreach (int num in getNumber()) { Console.WriteLine(num); } } static IEnumerable getNumber() { yield return 10; yield return 20; yield return 30; } } 결과는 다음과 같다. 10 20 30 yield break; 문..

Language/C# 2023.09.03

[C#] 중급 문법 - 데이터 타입 (Data Type), 데이터 클래스와 null 핸들링, 그리고 enum

주제 | [C#] 중급 문법 - 데이터 타입 (Data Type), 데이터 클래스와 null 핸들링, 그리고 enum 개요 | Data Type 키워드와 .Net 데이터 클래스 및 Convert 메서드 null 과 Nullable Type 열거형 상수 enum 본문 | 1. Data Type 키워드와 .Net 데이터 클래스 및 Convert 메서드 데이터 타입의 각 키워드는 .Net 의 데이터 클래스와 매칭된다. Convert 를 사용하여 데이터 형변환을 하려다보면 자동완성에 나타나는 수많은 메서드들이 보일 것이다. 앞선 포스팅에서는 자주 사용하는 데이터 타입 및 변수 선언의 예를 게시했다. 이번 글에서는 데이터 타입에 관한 C# 키워드 및 해당 키워드에 대해 .Net 의 데이터 클래스들을 게시하겠다. ..

Language/C# 2023.09.01

[C#] 기초 문법 - 반복문 (while, for, foreach) & 무한루프

반복문의 기본 개념은 '조건을 만족하는 동안(조건의 비교 연산이 참인 동안) 하위 블럭을 수행하라. 조건을 만족하지 않으면 하위 블럭을 수행하지 말고 다음 코드라인을 읽어라.'이다. 1. while while 문의 구조는 아래와 같다. while (/*조건*/) // 조건은 참이어야 하며, 조건이 거짓이 되는 순간 while문을 빠져나간다. { // 실행할 구문 } int age = 5; int num = 0; while (age > num) { Console.WriteLine(num); num++; } Console.WriteLine("End of the Code."); 출력 결과 : 0 // num = num + 1; 1 // num++ 에 의해 1 증가 2 // age > num 을 만족하므로 출력..

Language/C# 2023.09.01

[C#] 기초 문법 - 조건문 (if, switch, 삼항 연산자)

1. if문 if 문은 괄호() 안의 조건이 참(True)인지 거짓(False)인지 비교하여 판단하는 조건문이다. 만일 조건이 참이면 코드 블럭{} 안의 코드가 실행되고, 그렇지 않으면 코드블럭{} 밖으로 빠져나가 다음 코드라인을 읽는다. 앞선 포스팅에서 '=' 기호를 변수에 값을 할당할 때 사용했다. 값이 서로 같은지 비교할 때는 '==' 기호를 사용하여 비교한다. string name = "Regina"; if (name == "Regina") { Console.WriteLine(name == "Regina"); } // 출력 결과 : True 값이 서로 다른지 비교할 때는 '!=' 기호를 사용하여 비교한다. 만일 출력문에서 '==' 이 아닌 '!=' 를 사용한다면 False가 출력될 것이다. str..

Language/C# 2023.08.31

[C#] Console의 값 읽기 - ReadLine() & Read()

1. Console.ReadLine(); 리턴값 : string 한 줄씩 읽음 // 입력 : CSharp Console.WriteLine(Console.ReadLine()); // 출력 : CSharp // 입력 : 123 Console.WriteLine(Convert.ToInt32(Console.ReadLine())); // 출력 : 123 2. Console.Read(); 리턴값 : char 한 문자씩 읽음 // 입력 : 123 Console.WriteLine(Convert.ToChar(Console.Read())); // 출력 : 1 // 입력 : CSharp Console.WriteLine(Convert.ToChar(Console.Read())); // 출력 : C

Language/C# 2023.08.31

[C#] 기초 문법 - 숫자형 변수의 형변환

주제 |[C#] 기초 문법 - 숫자형 변수의 형변환개요 |형변환(Type Casting)이란?숫자형 변수 간의 형변환char 와 숫자형 변수의 형변환본문 |1. 형변환(Type Casting)이란?타입 캐스팅(Type Casting. 형변환)이란, 다른 자료형으로 데이터 타입을 변환시키는 것을 말한다.2. 숫자형 변수 간의 형변환숫자 자료형은 다음과 같은 종류가 있다.intlongfloatdoubledecimal위에서 아래로 갈수록 자료형이 담을 수 있는 값의 범위는 더 커진다. 크기가 작은 데이터 타입에서 크기가 큰 데이터 타입으로의 형변환은 특별한 캐스팅 표시를 하지 않아도 자동으로 처리된다. 하지만, 크기가 큰 데이터 타입에서 크기가 작은 데이터 타입으로의 형변환은 명시적으로 캐스팅하겠다는 코드를 ..

Language/C# 2023.08.30
728x90