개체 이니셜라이저는 생성자를 대신하는 방법이에요. 문법은 아래와 같아요. 중괄호 안에 =로 구분한 이름-값 쌍을 쉼표로 나열해요:
public class Person
{
public string Name;
public string Address;
}
var person = new Person{Name="The President", Address = "Élysée Palace"};
컬렉션도 같은 방식으로 초기화할 수 있어요. 보통은 아래처럼 쉼표로 구분한 목록으로 작성해요:
IList<Person> people = new List<Person>{ new Person(), new Person{Name="Joe Shmo"}};
딕셔너리에는 다음과 같은 문법을 사용해요:
IDictionary<int, string> numbers = new Dictionary<int, string>{ [0] = "zero", [1] = "one"...};
// or
IDictionary<int, string> numbers = new Dictionary<int, string>{ {0, "zero" }, {1, "one"}...};
네트워크 인증 시스템에 대한 작업을 좀 더 해 달라는 요청을 받았어요.
개발 중에 관리자 신원이 시스템에 하드코딩되어 있는 것에 더해, 윗선에서는 선임 개발자들에게도 같은 방식을 적용하기를 원해요.
관리자의 정보는 다음과 같아요:
| 이메일 | 눈 색깔 | 인중 너비 | 이름 | 주소 1 | 주소 2 |
|---|---|---|---|---|---|
| admin@ex.ism | green | 0.9 | Chanakya | Mumbai | India |
시스템 관리자의 신원 정보를 반환하도록 Authenticator.Admin 속성을 구현해요. 이름과 주소의 각 부분은 NameAndAddress 배열의 각각 다른 원소에 들어가야 해요.
var authenticator = new Authenticator();
authenticator.Admin;
// => {"admin@ex.ism", {"green", 0.9m}, ["Chanakya", "Mumbai", "India"]}
개발자들의 정보는 다음과 같아요:
| 이메일 | 눈 색깔 | 인중 너비 | 이름 | 주소 1 | 주소 2 |
|---|---|---|---|---|---|
| bert@ex.ism | blue | 0.8 | Bertrand | Paris | France |
| anders@ex.ism | brown | 0.85 | Anders | Redmond | USA |
개발자들의 신원 정보를 반환하도록 Authenticator.Developers 속성을 구현해요. 딕셔너리의 키는 개발자의 이름이에요.
var authenticator = new Authenticator();
authenticator.Developers;
// => ["Bertrand"] = {"bert@ex.ism", {"blue", 0.8m}, ["Bertrand", "Paris", "France"]},
// ["Anders"] = {"anders@ex.ism", {"brown", 0.85m}, ["Anders", "Redmond", "USA"]},
Exercism에 가입하고 C# 트랙을 개념 62개연습 문제 178개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.