Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
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
Archives
Today
Total
관리 메뉴

게임 프로그래밍

[C#] is, as에 대해서 본문

프로그래밍/C#

[C#] is, as에 대해서

Junwe 2020. 3. 1. 06:53

c#에서는 as 와 is 라는 키워드가 있다. 둘다 형변환(캐스팅)과 관련된 키워드라고 생각 하면 쉽다.

 

우선 as 에 대해서 알아보자. 보통 다른 언어에서 형변환을 할때 (type)value 이러한 형태를 자주 썻을것이다.

as는 이러한 기능과 똑같이 작동한다. 그러나 한가지 다른 점은 as는 형변환을 할수 없는 상태면 컴파일 오류가 나게 된다. 그러므로 as를 쓰는것이 좀 더 좋을것이다.

 

다음 is에 대해서 알아보자. as에 경우에는 형변환된 결과를 리턴시킨다. 그러나 is에 경우에는 형변환이 가능한지 불가능한지에 대해 리턴을 한다. 가능하다면 true, 불가능하다면 false인것이다.

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
using System;
 
public class Example
{
   public static void Main()
   {
      Object o = new Person("Jane");
      ShowValue(o);
      
      o = new Dog("Alaskan Malamute");
      ShowValue(o);
   }
 
   public static void ShowValue(object o)
   {
      if (o is Person p) {
         Console.WriteLine(p.Name);
      }   
      else if (o is Dog d) {
         Console.WriteLine(d.Breed);
      }             
   }
}
 
public struct Person
{  
   public string Name { get; set; }
   
   public Person(string name) : this()
   {
      Name = name;
   }
}
 
public struct Dog
{
   public string Breed { get; set; }
 
   public Dog(string breedName) : this()
   {
      Breed = breedName;
   }
}
// The example displays the following output:
//    Jane
//    Alaskan Malamute
cs

 

간단한 사용예제이다.

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

[C#] 확장 메세드  (0) 2020.03.06
[C#] Enum 반복문  (0) 2020.03.02
[C#] params 가변인자  (0) 2020.03.01
[C#] CSV 파일 저장하기  (0) 2020.02.19
[c#] BinaryFormatter  (0) 2020.01.14
Comments