블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2737)
Unity3D (817)
Programming (474)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (14)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
04-25 00:00

'is'에 해당되는 글 2건

  1. 2011.11.29 is 비교 연산자, as 연산자
  2. 2010.07.21 is 와 as

 is 연산자 : 두 객체가 동일한지 비교하는데 사용, is 연산자는 해당 객체가 is 오른쪽 형식과 호환되는지 확인만 한다. 객체 형식을 변경할 수 는 없다.

  1. char data = 'a';
  2. if(data is char)
  3. System.Console.WriteLine("문자 데이터 입니다.");
  4. else
  5. System.Console.WriteLine("문자 데이터가 아닙니다.");

 

 

as 연산자 : 객체가 호환되지 않으면 null 값을 할당, 호환되면 형식(casting)을 시켜준다. as 연산자는 강제 형변환과 비슷하며 변환시 예외가 발생하면 null을 채운다.

[표현식] as [데이터타입]

 

  1. string obj = data as string;
    if(obj != null)
    {
     ....
    }

 

아래의 형태는 as 연산자가 하는 기능이다.

[표현식] is [데이터타입] ? (데이터타입)[표현식] : (데이터타입) null

 

출처 : http://ocplay.springnote.com/pages/2731066 

반응형

'Programming > C#' 카테고리의 다른 글

Operator Overloading in C#  (2) 2011.12.05
Force property update in propertygrid  (0) 2011.11.29
effective c# - 1  (0) 2011.11.29
TreeNode Visual C# 도구 설명을 추가하는 방법  (0) 2011.11.21
TreeView에서 Find 함수 사용 방법  (0) 2011.11.20
Posted by blueasa
, |

is 와 as

Programming/C# / 2010. 7. 21. 19:39

캐스팅을 하는 일반적인 방법은 다음과 같이 ()를 사용하는 것이다.

 
  1. var num = 3.0;   
  2. var bnum = (byte)3.0; // bnum = 3  

위 방법은 편하지만 안전하지는 않다. 엉뚱한 타입으로 캐스팅하면 문제 - InvalidCastException 발생 – 가 발생한다. 보다 안전한 방법으로 캐스팅하는 방법은 as를 사용하는 것이다.

 
  1. var ms = stream as MemoryStream;  

만약 stream이 MemoyStream이 아니라면 ms에는null이 할당된다. 가능하다면 as를 사용하는 것이 읽기 편하고 안전하다. as를 사용하는 것이 ()보다 성능도 좋다고 한다. 단 int와 같은 built-in 데이타 타입은 as를 사용할 수 없다.

객체가 어떤 클래스에 속하는지 확인하기 위해서는 어떻게 할까? 그때는 is를 사용할 수 있다.

 
  1. if ( stream is MemoryStream )   
  2. {   
  3.   var pos = stream.Position;   
  4. }  

읽기 편하다. 아주 마음에 든다.

반응형
Posted by blueasa
, |