c# 기초구문 업데이트 완료

This commit is contained in:
2025-03-05 11:57:12 +09:00
parent 15885a2286
commit 6ebd0fb5a9
22 changed files with 740 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
+53
View File
@@ -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);
}
}