Csharp (43) 썸네일형 리스트형 Nullable 타입 Nullable 타입은 기본 값 타입이 null 값을 가질 수 있도록 확장시켜 줍니다. 주로 데이터베이스 작업이나 값이 설정되지 않은 상황을 처리할 때 유용합니다. 다음은 Nullable 타입의 사용 예제입니다: using System; public class NullableExample { public static void Main() { int? nullableInt = null; // Nullable의 축약형입니다. double? nullableDouble = 3.14; Console.WriteLine($"nullableInt has value? {nullableInt.HasValue}"); Console.WriteLine($"nullableDouble has value? {nullableDoubl.. 제네릭 (Generics) 제네릭을 사용하는 기본적인 예제는 종종 콜렉션과 관련된 것들이 많이 보이지만, 조금 더 간단한 예제를 통해 제네릭의 기본적인 아이디어를 이해해보겠습니다. 제네릭을 활용한 간단한 Swap 함수: Swap 함수는 두 개의 변수의 값을 바꾸는 함수입니다. 제네릭을 사용하면, 이 함수를 어떤 타입의 변수들에 대해서도 사용할 수 있습니다. using System; public class GenericExample { // 제네릭 메서드 선언 public static void Swap(ref T a, ref T b) { T temp = a; a = b; b = temp; } public static void Main() { int x = 5, y = 10; Console.WriteLine($"Before Swap:.. Versioning Support C# 및 .NET 프레임워크는 버전 관리(versioning)를 지원하는 기능을 포함하고 있습니다. 이는 라이브러리나 컴포넌트가 업데이트되더라도 기존의 응용 프로그램 코드에 부정적인 영향을 최소화하기 위한 것입니다. C#에서는 주로 인터페이스와 가상(Virtual) 메서드를 사용하여 버전 관리를 구현합니다. 예시: 먼저, 첫 번째 버전의 라이브러리를 살펴보겠습니다. // Version 1 of the library public interface ILogger { void Log(string message); } public class ConsoleLogger : ILogger { public void Log(string message) { Console.WriteLine(message); } } 위의 코.. 위임(Delegates) 및 이벤트(Events) C#의 **위임(Delegates)**는 함수에 대한 참조를 나타내며, 콜백, 이벤트, 람다 표현식 등에서 사용됩니다. **이벤트(Events)**는 일반적으로 위임을 기반으로 하며, 특정 액션이나 상황이 발생할 때 알림을 보내는 데 사용됩니다. 1. 위임(Delegates) public delegate void MyDelegate(string message); // 위임의 선언 public class DemoClass { public void ShowMessage(string message) { Console.WriteLine($"Message from DemoClass: {message}"); } } class Program { static void Main() { DemoClass demo = ne.. 자동 Implemented Properties C#에서는 자동 구현된 속성 (Auto-Implemented Properties) 기능을 제공하여 속성을 간결하게 표현할 수 있습니다. 기본적으로 컴파일러는 이러한 속성에 대한 백업 필드를 자동으로 생성합니다. 자동 구현된 속성을 사용하면, 명시적으로 백업 필드를 선언하거나 get 및 set 접근자의 본문을 작성할 필요가 없습니다. 예시: public class Student { // 자동 구현된 속성 public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } // 읽기 전용 자동 구현된 속성 public DateTime EnrollmentDate { get; private se.. 속성(Properties) 및 인덱서(Indexers) C#의 **속성(Properties)**와 **인덱서(Indexers)**는 객체 지향 프로그래밍에서 특별한 구문과 기능을 제공하는 멤버 유형입니다. 1. 속성(Properties) 속성은 값을 읽거나 설정하는 메소드의 일종입니다. 필드의 값을 직접 노출하지 않고 컨트롤하여 노출하는 것이 일반적입니다. public class Person { private string name; // 속성 예시 public string Name { get { return name; } set { if (!string.IsNullOrEmpty(value)) { name = value; } } } } Person person = new Person(); person.Name = "James"; Console.WriteLine.. 통합된 Exception Handling C#에서는 예외 처리를 위해 try, catch, finally 및 throw 키워드를 사용합니다. 이를 통해 런타임 에러나 예외적인 상황을 효과적으로 처리할 수 있습니다. 다음은 C#의 통합된 예외 처리의 기본적인 사용 방법을 보여주는 예제입니다: using System; public class Program { public static void Main() { try { Console.WriteLine("숫자를 입력하세요: "); int number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine($"입력한 숫자는 {number}입니다."); } catch (FormatException ex) { Console.WriteLine("올바른 숫자 형식.. Garbage Collection Garbage Collection (GC)은 .NET에서 사용되지 않는 메모리를 자동으로 회수하는 메커니즘이며, 개발자가 직접 메모리를 관리하는 것에 대한 부담을 줄여줍니다. C#에서는 객체를 new 키워드를 사용해 생성할 때마다 힙 메모리에 할당됩니다. 객체에 대한 참조가 더 이상 없게 되면, 그 객체는 가비지로 간주되며 GC에 의해 언젠가는 메모리에서 제거됩니다. 아래는 Garbage Collection에 대한 간단한 예제입니다: using System; public class DemoClass { ~DemoClass() // 소멸자 (finalizer) { Console.WriteLine("DemoClass 객체가 소멸되었습니다."); } } public class Program { public s.. 이전 1 2 3 4 5 6 다음