[C# 문법] C# as 연산자
- C#/C# 문법
- 2020. 12. 23. 01:00
안녕하세요.
오늘은 C# 기본 문법에서 as 연산자에 대해서 알아보려고 합니다.
C# 에서 as 연산자는 보통 캐스팅을 할 때 사용되는 문법입니다.
as 연산자의 경우에는 하향캐스팅을 수행하고, 만약 as 연산자를 이용해서 하향캐스팅을 했을 때 실패했을 경우에는 null로 평가가 됩니다.
또한, as 연산자의 특징이라면 참조 타입간의 캐스팅만 가능하고, 값 형식의 타입끼리의 형변환은 불가하다는 점 알고 계시면 좋겠습니다.
그럼 예제 코드를 통해서 어떻게 as 연산자를 이용하여 캐스팅 하는지 보여 드리도록 하겠습니다.
예제 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
using System;
using System.Collections.Generic;
namespace polyTest
{
class Program
{
class Human
{
public void HumanPrint()
{
Console.WriteLine("Human 캐스팅 성공");
}
}
class Student : Human
{
public void Print()
{
Console.WriteLine("Student 캐스팅 성공");
}
}
static void Main(string[] args)
{
Human human = new Human();
Student stu = new Student();
Student stu2 = new Student();
stu = human as Student;
human = stu2 as Student;
if (stu != null) //stu가 Null 아니라면 캐스팅 성공
{
stu.Print();
}
else
{
Console.WriteLine("캐스팅 실패");
}
if (human != null) //stu가 Null 아니라면 캐스팅 성공
{
human.HumanPrint();
}
else
{
Console.WriteLine("캐스팅 실패");
}
}
}
}
|
cs |
실행 결과
위와 같이 캐스팅을 실패하면 null 값을 저장하고, 그게 아니라면 성공적으로 캐스팅 된 것으로 as 연산자를 이용하여 쉽게 체크할 수 있습니다.
감사합니다.^^
728x90
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# is 연산자 (0) | 2021.01.12 |
---|---|
[C# 문법] 델리게이트(Delegate) 이용하여 함수를 매개변수로 넣기 (0) | 2021.01.10 |
[C# 문법] C# async 비동기 메서드 반환값 받기 (0) | 2020.12.22 |
[C# 문법] C# async, await 이용하여 비동기 예제 프로그램 만들기 (0) | 2020.12.21 |
[C# 문법] C# Null 관련 연산자(??, .? 기호) (0) | 2020.12.19 |
이 글을 공유하기