C#에서 is와 as 키워드는 객체의 타입을 확인하고 변환하는 데 사용됩니다. 두 키워드는 타입 검사 및 변환을 더 간단하고 안전하게 수앻할 수 있도록 도와준다.
1. is 연산자: 형식 검사, 타입 확인
- 사용 예: is는 객체가 특정 타입인지 확일할 때 사용한다.
- 특징: 타입이 일치하면 true, 그렇지 않다면 false를 반환한다.
예제 코드:
object obj = "hello";
if (obj is string) // true
Console.WriteLine("문자열입니다.");
if (obj is int) // false
Console.WriteLine("정수입니다.");
2. as 연산자: 형변환 시도, 타입 변환
- 사용 예: 객체를 특정 타입으로 안정하게 변환할 때 사용한다.
- 특징: 타입 변환이 성공하면 변환된 객체를 반환, 실패하면 null을 반환한다.
예제코드: nullable 타입 변수 체크
object obj = "Hello, World!";
// reference type(참조형) 변수(string, class, interface, object 등)는
// null이 가능하여 이렇게 바로 사용 가능하지만
string str = obj as string;
if (str != null)
{
Console.WriteLine("Conversion successful: " + str);
}
else
{
Console.WriteLine("Conversion failed");
}
// *** value type(값형) 변수(int, float, bool, struct 등)는 메모리에 값 자체를 저장하기 때문에
// null을 기본적으로 가질 수 없음
// 따라서 null을 허용하려면 nullable 타입으로 만들어야 한다. -> int?
object obj1 = 123;
// int i = obj1 as int; // 컴파일 오류
int? i = obj1 as int?; // OK
if (i != null)
Console.WriteLine($"값: {i.Value}");
else
Console.WriteLine("변환 실패");'Programming > C#' 카테고리의 다른 글
| C# 박싱과 언박싱 (0) | 2025.07.07 |
|---|---|
| C# 문자열 (0) | 2025.06.17 |
| C# ref vs out (Pass by Reference) (0) | 2025.06.11 |
| C# Convert, Parse와 TryParse (0) | 2025.06.10 |
| C# 문법 기초 - C++과 다른 점 (5) | 2025.06.09 |
