728x90
반응형
1. object
- object는 모든 타입을 받을 수 있는데, 형변환을 해야 한다,
object o = 10;
//o = o +10; 오류가 남
o = (int)o + 10;
Console.WriteLine(o.GetType()); //System.Int32
o = "ABC";
Console.WriteLine(o.GetType()); //System.String
2. var
- var는 처음 값이 할당되는 순간 타입이 결정이 되고 형 변환은 필요 없다.
var v = 20;
v = v + 30;
//Console.WriteLine(v.GetType()); // System.Int32
//v = "Daum"; 오류발생
3. dynamic
- dynamic은 컴파일 시에 코드 체크를 하지 않고 건너뛴다
- dynamic은 중간에 Type을 변경할 수 있다.
- dynamic은 형 변환이 필요 없다.
class Dyanamic { //파라미터 타입으로 var,object는 올 수 없다. public void Print(dynamic d) { Console.WriteLine(d.Name); Console.WriteLine(d.Age); } } class DynamicSample { static void Main() { dynamic d = 3; d = d + 1; Console.WriteLine(d.GetType()); // System.Int32 d = "ABC"; Console.WriteLine(d.GetType()); // System.String //d.TestMethod(); 실행은 되는데 실행을 하고 나면 예외가 발생한다, var d1 = new { Name = "Daum", Age = 33 }; Dyanamic cd = new Dyanamic(); cd.Print(d1); } }
728x90
반응형
'스마트한 개발 공부 > C#' 카테고리의 다른 글
[C#] 여러 가지 메소드 반환타입 (0) | 2021.10.31 |
---|---|
[C#] Method에서 여러 개의 Return 값 받기 (0) | 2021.09.07 |
[C#] 변수를 상수형으로 만드는 방법 : readonly와 const (0) | 2021.08.19 |
[C#] Struct 구조체 (0) | 2021.08.19 |
[C#] 상속과 interface(인터페이스) 그리고 abstract class(추상 클래스) (0) | 2021.08.18 |