ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1067)
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (180)
      • Unreal (69)
      • Unity (100)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (346)
      • C++ (167)
      • C# (88)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • 유니티
  • 오블완
  • 프로그래머스
  • 알고리즘
  • C
  • 문자열
  • 배열
  • Unity
  • C++
  • c#
  • 언리얼
  • 클래스
  • 포인터
  • 백준
  • 티스토리챌린지
  • 파이썬
  • string
  • 함수
  • SQL
  • 그래픽스

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

프로그래밍 언어/C#

C# 형변환 is as 키워드

2022. 6. 5. 20:23

is는 객체가 해당 형식에 해당하는 지를 검사하여 bool 값을 결과로 반환.
as는 형 변환 연산자와 같은 역할을 하지만, 형변환 연산자가 변환에 실패하는 경우에는 예외를 던지는 반면, as 연산자는 객체 참조를 null로 만든다.

using System;
 
class Mammal{}
class Dog : Mammal{}
class Cat : Mammal{}
 
 
Mammal m1 = new Dog();
Dog dog;
Cat cat;
 
if(m1 is Dog)
{
    dog = (Dog)m1;
    Console.WriteLine("m1 is dog");
}
else
    Console.WriteLine("m1 is not dog");
 
if (m1 is Cat)
{
    cat = (Cat)m1;
    Console.WriteLine("m1 is cat");
}
else
    Console.WriteLine("m1 is not cat");
 
// m1 is dog
// m1 is not cat
 
 
Mammal m2 = new Cat();
dog = m2 as Dog;
cat = m2 as Cat;
 
if (dog)
    Console.WriteLine("m2 is dog");
 
else
     Console.WriteLine("m2 is not dog");
 
if (cat)
    Console.WriteLine("m2 is cat");
 
 else
     Console.WriteLine("m2 is not cat");
 
// m2 is not dog
// m2 is cat

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

C# Boxing Unboxing 박싱 언박싱 값>참조, 참조>값  (0) 2022.06.19
C# 제네릭 (C++ > 템플릿)  (0) 2022.06.13
C# Delegate Event 사용법  (0) 2022.06.08
C# 사용자 정의 전환 연산자(암시적/명시적)  (0) 2022.06.08
C# LINQ  (0) 2022.06.07
    '프로그래밍 언어/C#' 카테고리의 다른 글
    • C# 제네릭 (C++ > 템플릿)
    • C# Delegate Event 사용법
    • C# 사용자 정의 전환 연산자(암시적/명시적)
    • C# LINQ
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바