C# 프로그래밍 - List 클래스 사용 예시와 유용한 함수들List는 동적 배열을 구현하는 제네릭 컬렉션입니다. 다양한 데이터 유형을 저장하고 크기를 동적으로 조정할수있습니다. List 클래스를 통해 제공되며 목록을 검색, 정렬, 수정하는 다양한 메서드를 제공합니다. 리스트 생성리스트를 생성하려면 List를 사용하고 타입 매개변수 T를 지정합니다. 정수형 리스트 List intList = new List(); 문자열 리스트 List stringList = new List(); // 리스트에 값 추가Add 함수를 사용하여 리스트에 값을 추가합니다. intList.Add(1); intList.Add(2); intList.Add(3); stringList.Add("Hello"); stringList.Ad..
C# 프로그래밍 - 열거형(enumeration, enum) 사용 예시C#에서 열거형(enumeration, enum)은 정수 형식의 상수 집합을 정의하는 데 사용되는 자료형입니다. 열거형을 사용하면 특정 값 집합에 문자열 이름을 부여하여 코드의 가독성을 높일수있습니다. 열거형 선언enum 키워드를 사용하여 열거형 Day를 정의하고 맴버의 이름(요일을 나타내는)을 지정합니다.맴버의 값은 기본적으로 0부터 시작하여 순차적으로 증가하는 정수를 가집니다. enum Day { Sunday, // 0 Monday, // 1 Tuesday, // 2 Wednesday, // 3 Thursday, // 4 Friday, // 5 Saturd..
C# 프로그래밍 자주 사용하는 문자열 클래스(String) 함수 모음문자열 생성 및 초기화string str1 = "Hello, World!"; // 문자열 리터럴 string str2 = new string(new char[] { 'H', 'e', 'l', 'l', 'o' }); // 문자 배열로 초기화 문자열 연결+ 연산자 사용 string firstName = "John"; string lastName = "Doe"; string fullName = firstName + " " + lastName; // "John Doe" String.Concat() 메서드 사용 string fullNameConcat = string.Concat(firstName, " ", lastName); // "John D..
C# 프로그래밍 - 반복문 흐름제어(break, continue)break와 continue는 반복문에서 흐름을 제어하는 데 사용됩니다. break 반복문을 즉시 종료시키고 반복문이 끝난 뒤의 코드로 흐름을 이동시킵니다. 아래 스크립트에서 0부터 4까지 출력되고 i가 5일 때 break가 호출되어 반복문이 종료됩니다. for (int i = 0; i { if (i == 5) { break; } Console.WriteLine(i); } continue 반복문의 현재 반복을 건너뛰고 다음 반복으로 넘어갑니다. 아래 스크립트에서 i가 짝수일때 반복을 건너뛰고 결과적으로 홀수만 출력합니다.for (int i = 0; i { if (i % 2 == 0) ..
C# 프로그래밍 - 클래스 유형(sealed, partial, nested, 기타)sealed 클래스sealed 클래스는 더 이상 상속될 수 없는 클래스를 의미합니다. sealed 키워드를 사용하여 선언한 클래스는 다른 클래스가 상속할 수없습니다. sealed 클래스는 상속 계층의 끝을 나타내며 이 클래스를 기반으로 새로운 클래스를 만들 수 없습니다(더 이상 확장할 필요가 없는 최종 구현 클래스에 사용) 특정 클래스가 상속되지 않아야 함을 명시적으로 나타낼 수 있으며 중요한 클래스가 의도치 않게 상속되어 수정되는 것을 방지할 수 있습니다. sealed 클래스 사용 예시public sealed class SealedClass { } 아래 스크립트는 컴파일 오류를 발생시킵니다. public cl..
C# 프로그래밍 - static 키워드(정적 클래스, 정적 필드, 정적 메서드)클래스 또는 클래스의 멤버(필드, 속성, 메서드, 생성자,기타)에 대해 static 키워드를 사용할 수 있습니다. static 키워드를 사용하면 해당 멤버가 인스턴스가 아닌 클래스 자체에 속하게 됩니다. static 멤버는 클래스의 인스턴스를 생성하지 않고도 접근할 수 있습니다.정적 클래스(Static Class)정적(static) 클래스는 인스턴스를 생성할 수 없는 클래스로 static 키워드를 사용하여 선언합니다. 정적 클래스의 멤버에 접근하기위해 모든 멤버는 static이어야 합니다. 정적 클래스와 멤버 선언(필드, 메서드)public static class MyStaticClass { public static in..
C# 프로그래밍 - 메서드의 오버라이딩(overriding)과 오버로딩(overloading) 오버라이딩(overriding) 클래스의 상속이 이루어진경우 부모 클래스에서 정의된 메서드에 대하여 동일한 이름의 메서드를 자식 클래스에서 재정의 할수있습니다. 오버로딩(overloading) 매개변수의 개수와 유형이 다른 여러 버전의 동일명 메서드를 정의하고 각각 다른 작업을 수행하는 메서드를 호출할수있습니다.
C# 프로그래밍 - 메서드 오버로딩(Overloading) 메서드 오버로딩(Overloading)은 같은 이름을 사용하여 매개변수의 유형, 개수 또는 순서가 다른 여러 버전의 메서드를 정의하는것을 의미합니다. 오버로딩을 사용하면 동일한 메서드 이름을 사용하여 다양한 입력 유형 또는 매개변수 조합을 처리할 수있습니다. C# 컴파일러는 호출된 메서드의 매개변수 유형 및 개수를 기반으로 어떤 메서드를 호출할지 결정합니다. 메서드 오버로딩을 사용할 때 메서드 이름이 동일해야하고 매개변수의 데이터 형식 또는 개수가 달라야 합니다. 메서드 오버로딩 사용예시 매개변수의 유형이 다른 경우 각각 다른 매개변수 유형을 가지는 세개의 동일 이름 메서드(Add)를 선언하고 각각 정수 덧셈, 부동 소수점 덧셈, 문자열 연결을 ..
C# 프로그래밍 - 구조체(Struct) 구조체(Struct)는 C#의 사용자 정의 데이터 형식으로 클래스와 유사한 기능(데이터를 구조화하고 관련 데이터 및 동작을 캡슐화)을 제공하지만 몇 가지 중요한 차이점이 있습니다. 구조체는 값 형식(Value Type)으로 분류되며 상속을 지원하지않습니다. 주로 작은 크기의 데이터를 효율적으로 저장하고 전달하는 데 사용됩니다. 구조체의 몇가지 특징 값 형식(Value Type) - 구조체는 값 형식(value type)으로 분류됩니다. 이는 구조체 변수가 스택(stack)에 직접 저장되며 값 복사 방식으로 동작한다는것을 의미합니다. 반면 클래스(class)는 참조 형식(reference type)으로 분류되어 힙(heap)에 저장되고 변수는 참조를 가지고 있습니다..
C# 프로그래밍 - this 키워드 this 키워드는 현재 클래스의 객체 및 인스턴스(instance)를 의미합니다. this 키워드는 클래스 내부에서 사용되어 현재 객체에 대한 참조를 나타내며 객체의 필드, 속성 및 메서드에 접근할 수 있습니다. this를 사용하여 현재 인스턴스의 필드 myField에 접근하고 값을 설정합니다. class MyClass { private int myField; public void SetField(int value) { this.myField = value; } }
C# 프로그래밍 - 메서드 오버라이딩(override)부모 클래스(또는 기반 클래스)에서 정의된 메서드를 자식 클래스(파생 클래스)에서 재정의할수있습니다. 메서드 오버라이딩을 사용하면 런타임 다형성(Polymorphism)을 구현할수있습니다(기반 클래스는 파생 클래스를 통해서 다형성을 구현) 부모 클래스 메서드 정의 메서드를 오버라이드하려면 부모 클래스에서 virtual 키워드를 사용하여 메서드를 정의합니다. 자식 클래스 메서드 재정의 자식 클래스에서 override 키워드를 사용하여 부모 클래스에서 정의된 메서드를 재정의합니다. 메서드 오버라이딩 예시 Animal 클래스의 가상 메서드 Speak에서 기본 동작을 정의합니다. class Animal { public virtual void Speak..
C# 프로그래밍 - new 키워드 객체 생성 new 키워드는 클래스의 인스턴스를 생성하는 데 사용됩니다. 클래스는 객체를 만들기 위한 템플릿이며 new를 사용하여 그 템플릿을 기반으로 실제 객체를 생성합니다. 아래 코드에서 new 키워드는 MyClass 클래스의 새로운 인스턴스를 생성하고 이를 "myObject" 변수에 할당합니다. MyClass myObject = new MyClass(); 배열 생성 new 키워드는 배열을 생성하는 데 사용할수있습니다. 아래 코드에서 크기가 5인 정수 배열을 생성합니다. int[] myArray = new int[5];