스마트한 개발 공부/C#
[C#] object, var, dynamic 비교
스마트한지노
2021. 10. 31. 13:40
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
반응형