본문 바로가기

C# is와 as (Type Checking and Casting)

@코야딩구2025. 6. 11. 15:42

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
목차