본문 바로가기
프로그래밍

C#에서 언더스코어(\_)의 다양한 용도

by blacknabis 2024. 5. 9.

1. 디스카드 (Discards)

C# 7.0부터 도입된 디스카드 기능은 불필요한 반환 값이나 변수를 무시할 때 사용합니다. `_`를 사용하면, 코드의 의도를 명확히 할 수 있으며, 가독성을 향상시킬 수 있습니다.

**예시:**

```csharp
(int result, _) = Divide(10, 3);
```

위 코드에서 `Divide` 메서드는 두 개의 값을 반환하지만, 두 번째 반환 값을 `_`를 사용해 명시적으로 무시하고 있습니다. 이는 첫 번째 값만 필요할 때 유용합니다.

2. 패턴 매칭에서의 와일드카드

C# 7.0 이상에서 패턴 매칭을 사용할 때, `_`는 어떤 값이든 매치될 수 있는 와일드카드로 사용됩니다. 이는 주로 `switch` 문 내에서 사용되며, 모든 케이스를 포괄하는 기본 케이스 역할을 합니다.

**예시:**

```csharp
object value = "hello";
switch (value)
{
case int i:
Console.WriteLine($"Integer: {i}");
break;
case string s:
Console.WriteLine($"String: {s}");
break;
default:
Console.WriteLine("Unknown type");
break;
}
```

위 예시에서 `default`는 모든 나머지 타입을 처리합니다. 패턴 매칭에서 `_`를 사용하면 특정 케이스를 제외한 모든 값을 포괄적으로 처리할 수 있습니다.

3. 람다 표현식에서 무시되는 매개변수

람다 표현식에서 일부 매개변수는 사용되지 않을 때가 있습니다. 이런 경우, `_`를 사용하여 불필요한 매개변수를 명시적으로 표시할 수 있습니다. 이 방법은 코드를 더욱 간결하게 만들어 줍니다.

**예시:**

```csharp
EventHandler handler = (_, args) => Console.WriteLine("Event triggered");
```

위 코드에서 이벤트 핸들러는 첫 번째 매개변수를 사용하지 않고 있으며, 이를 `_`로 표시하여 무시합니다. 이는 매개변수를 요구하는 특정 API에 적합합니다.

'프로그래밍' 카테고리의 다른 글

Unity UI의 핵심 요소, Toggle  (0) 2024.05.09
Microsoft Store 제거/설치  (0) 2023.04.16