본문 바로가기

워크

(112)
자동 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..
Type-Safe 언어 Type-Safe 언어는 변수나 객체가 예상치 못한 데이터 타입에 의해 변형되거나 오용되는 것을 방지합니다. C#은 이러한 타입 안전성을 강조하는 언어입니다. 이를 통해 프로그래머의 실수나 예기치 않은 동작으로부터 보호받을 수 있습니다. 다음은 C#에서의 타입 안전성과 관련된 예제입니다: public void ShowTypeSafety() { int number = 100; // 컴파일 에러 발생! string과 int 간에 직접적인 할당이 허용되지 않습니다. // string text = number; // 올바른 방법: 명시적으로 형 변환을 해야 합니다. string text = number.ToString(); Console.WriteLine(text); // "100" 출력 // 다른 데이터 타입..
객체 지향 프로그래밍(OOP) 객체 지향 프로그래밍(OOP)의 핵심 개념인 클래스, 객체, 상속, 다형성, 캡슐화에 대한 간단한 예시를 C#으로 보여드리겠습니다. 1. 클래스와 객체 클래스는 설계도에 비유할 수 있고, 객체는 그 설계도를 바탕으로 만들어진 실체를 의미합니다. public class Dog { public string Name { get; set; } public void Bark() { Console.WriteLine($"{Name}가 멍멍 짖습니다."); } } // 객체 생성 Dog myDog = new Dog(); myDog.Name = "맥스"; myDog.Bark(); // "맥스가 멍멍 짖습니다." 출력 2. 상속 클래스 간에 코드를 재사용하고 확장할 수 있도록 하는 개념입니다. public class An..
C# 1.0의 주요 특징: 초창기의 혁신 C# 1.0의 주요 특징: 초창기의 혁신 안녕하세요, 여러분! 오늘은 프로그래밍 언어의 세계에서 중요한 위치를 차지하고 있는 C#(C 샵)의 첫 버전, C# 1.0에 대해 알아보려 합니다. 2000년대 초반, Microsoft는 .NET 프레임워크와 함께 C# 1.0을 발표했는데, 그 특징들이 무엇인지 함께 살펴봅시다. 1. 객체 지향 프로그래밍(OOP) C#은 객체 지향 프로그래밍 언어입니다. 클래스와 객체, 상속, 다형성, 캡슐화 등의 핵심 객체 지향 개념을 완전히 지원합니다. 2. Type-Safe 언어 C#은 타입 안전성을 강조합니다. 이는 프로그래머가 예상하지 못한 타입의 데이터를 사용하여 버그나 오류를 발생시키는 것을 방지하기 위한 것입니다. 3. Garbage Collection 메모리 관리..
Lambda Expression class Lambda { class Department { public int Id { get; set; } public string Name { get; set; } } class Employee { public int Id { get; set; } public string Name { get; set; } public int DeptId { get; set; } public int Type { get; set; } public List depts { get; set; } } static void Main(string[] args) { int[] intArray = new[] { 96, 92, 24, 12, 17, 70, 27, 78, 15, 20 }; string strResult = ""; //람..