C# 기초
개체 이니셜라이저
meltingmelvin
2023. 7. 26. 17:33
개체 및 컬렉션 이니셜라이저 - C# 프로그래밍 가이드
C#의 개체 이니셜라이저는 생성자를 호출한 다음 생성 시 개체의 액세스 가능한 필드나 속성에 값을 할당합니다.
learn.microsoft.com
Cat cat = new Cat { Age = 10, Name = "Fluffy" };
Cat sameCat = new Cat("Fluffy"){ Age = 10 };
2.예제
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class DataManager
{//static으로 되어있으면 타입으로 접근한다.
public static readonly DataManager instance = new DataManager();
Dictionary<int, ItemData> dicItemDatas = new Dictionary<int, ItemData>();
private DataManager() { //private으로 작성
}
public void LoadItemDatas()
{
dicItemDatas.Add(100, new ItemData(100, "장검", 0, 8));
dicItemDatas.Add(101, new ItemData(101, "단검", 0, 5));
dicItemDatas.Add(102, new ItemData(102, "활", 0, 6));
dicItemDatas.Add(103, new ItemData(103, "도끼", 0, 10));
dicItemDatas.Add(104, new ItemData(104, "사슬 갑옷", 1, 0));
dicItemDatas.Add(105, new ItemData(105, "사슬 갑옷", 2, 0));
}
public ItemData GetItemData(int id)//아이템 데이터 가져오기
{
Console.WriteLine("{0}: {1}", dicItemDatas[id].id,dicItemDatas[id].name);
return this.dicItemDatas[id];
}
}
}
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;
namespace Starcraft
{
internal class App
{
//생성자
public App()
{
DataManager.instance.LoadItemDatas();
//개체 이니셜라이저
List<Item> items = new List<Item>()
{
new Item(DataManager.instance.GetItemData(100)),
new Item(DataManager.instance.GetItemData(104))
};
}
}
}