c# 기초구문 업데이트 완료
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
internal class Program
|
||||
{
|
||||
private static void Main(string[] args)
|
||||
{
|
||||
// 1. dynamic은 중간에 형을 변환할 수 있다.
|
||||
|
||||
dynamic v = 1;
|
||||
// System.Int32 출력
|
||||
Console.WriteLine(v.GetType());
|
||||
|
||||
v = "abc";
|
||||
// System.String 출력
|
||||
Console.WriteLine(v.GetType());
|
||||
|
||||
|
||||
// 2. dynamic은 cast가 필요없다
|
||||
|
||||
object o = 10;
|
||||
// 틀린표현
|
||||
// (에러: Operator '+' cannot be applied to operands of type 'object' and 'int')
|
||||
//o = o + 20;
|
||||
|
||||
// 맞는 표현: object 타입은 casting이 필요하다
|
||||
o = (int)o + 20;
|
||||
|
||||
// dynamic 타입은 casting이 필요없다.
|
||||
dynamic d = 10;
|
||||
d = d + 20;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 동일 어셈블리에서 익명타입에 dynamic 사용한 경우
|
||||
class Class1
|
||||
{
|
||||
public void Run()
|
||||
{
|
||||
dynamic t = new { Name = "Kim", Age = 25 };
|
||||
|
||||
var c = new Class2();
|
||||
c.Run(t);
|
||||
}
|
||||
}
|
||||
|
||||
class Class2
|
||||
{
|
||||
public void Run(dynamic o)
|
||||
{
|
||||
// dynamic 타입의 속성 직접 사용
|
||||
Console.WriteLine(o.Name);
|
||||
Console.WriteLine(o.Age);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user