Programming/C#
[Programming/C#] 무명 형식의 프로퍼티
scii
2020. 9. 14. 00:40
이름이 없는 형식, 즉 "무명 형식 (Anonymous Type)" 의 프로퍼티를 정의할 수 있다.
무명 형식은 형식의 선언과 동시에 인스턴스를 할당한다. 이 때문에 인스턴스를 만들고 다시는 사용하지 않을 때 요기하게 쓰인다.
// 괄호 사이에 임의의 프로퍼티 이름을 적고 값을 할당하면 그대로 새 형식의 프로퍼티가 된다.
var myInstance = new { Name = "test", Age = 17 };
Console.WriteLine( myInstance.Name, myInstance.Age );
무명 형식에는 주의할 점이 있다. 그것은 무명 형식의 프로퍼티에 할당된 값은 변경 불가라는 점이다.
한마디로 한번 무명 형식의 인스턴스가 만들어지고 난 다음에는 읽기만 할 수 있다는 것이다. 이러한 특징들을 보면 무명 형식이 무용지물인 것만 같은 느낌을 주지만 LINQ와 함께 사용하면 아주 유용하게 쓰인다.
using System;
namespace CSharpExample
{
class MainApp
{
static int Main(string[] args)
{
var a = new { Name = "haha", Age = 17 };
Console.WriteLine($"Name: {a.Name}, Age: {a.Age}");
var b = new { Subject = "수학", Scores = new int[] { 90, 80, 70, 60 } };
Console.WriteLine($"Subject: {b.Subject}, Scores: ");
foreach(var score in b.Scores)
{
Console.Write($"{score} ");
}
Console.WriteLine();
return 0;
}
}
}
/* 결과
Name: haha, Age: 17
Subject: 수학, Scores:
90 80 70 60
*/