C#/문법

C# 문법 4

psb08 2024. 11. 24. 23:11
728x90
반응형

1. 패턴 매칭

object obj = "Hello";
if (obj is string str)
{
    Console.WriteLine(str); // "Hello" 출력
}

C# 7.0부터 도입된 패턴 매칭 기능은 switch 문이나 is 키워드를 사용하여 변수의 타입이나 구조를 검사하는 데 유용합니다.

 

 

2. 확장 메서드

public static class StringExtensions
{
    public static int WordCount(this string str)
    {
        return str.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Length;
    }
}

// 사용 예
string sentence = "Hello world";
int count = sentence.WordCount(); // 2 반환

확장 메서드는 기존 클래스에 새로운 메서드를 추가할 수 있는 기능입니다. 

이를 통해 클래스의 기능을 확장할 수 있습니다.

 

 

3. 정적 클래스

public static class MathUtility
{
    public static int Add(int a, int b)
    {
        return a + b;
    }
}

// 사용 예
int sum = MathUtility.Add(5, 10);

정적 클래스는 인스턴스를 생성할 수 없는 클래스입니다. 

모든 멤버가 정적(static)으로 선언되어야 하며, 주로 유틸리티 메서드를 정의하는 데 사용됩니다.

 

 

4. 네임스페이스

namespace MyApplication.Models
{
    public class Product
    {
        public string Name { get; set; }
    }
}

네임스페이스는 관련된 클래스, 인터페이스, 구조체 등을 그룹화하는 데 사용됩니다. 

이를 통해 코드의 조직을 개선하고 이름 충돌을 방지할 수 있습니다.

 

 

5. 제네릭

public class Box<T>
{
    private T content;

    public void Put(T item)
    {
        content = item;
    }

    public T Get()
    {
        return content;
    }
}

// 사용 예
var intBox = new Box<int>();
intBox.Put(123);

제네릭을 사용하면 데이터 타입에 구애받지 않고 클래스나 메서드를 정의할 수 있습니다. 

이를 통해 코드의 재사용성을 높이고, 타입 안전성을 강화할 수 있습니다.

 

'C# > 문법' 카테고리의 다른 글

C# 문법 6  (0) 2024.11.26
C# 문법 5  (0) 2024.11.25
C# 문법 3  (0) 2024.11.24
C# 문법 2  (0) 2024.11.20
C# 문법 1  (0) 2024.11.19