다음과 같은 일반 컬렉션에서 상속 사용이 나타났습니다.콜렉션에서 T를 상속받습니다. <T>
class Model : Collection<Model>
{
public string Name { get; set; }
public string Password { get; set; }
}
그리고 그것은으로 인스턴스화 할 수 있습니다
var model = new Model {Name = "Name1", Password = "Pass1"};
model.Add(new Model { Name = "Name2", Password = "Pass2" });
model.Add(new Model { Name = "Name3", Password = "Pass3" });
내가 단일 인스턴스뿐만 아니라 컬렉션 개체로 model
모두에 액세스 할 수 있습니다.
Console.Out.WriteLine("Original: " + model.Name + " : " + model.Password + Environment.NewLine);
foreach (var m in model)
{
Console.Out.WriteLine(m.Name + " : " + m.Password + Environment.NewLine);
}
어떻게 가능하며 실제로 커버 아래에서 무엇이 일어나고 있습니까?
편집 : 더 명확히하기 위해, model
단일 I는 (이름 1) model.Name
액세스 할 수있는, 분리 된 인스턴스가 아닌 I는 model[0].Name
(NAME2)에 액세스 할 수 콜렉션의 부분을 갖는다. 이 이중 성질은 나를 혼란스럽게합니다.
왜 그렇게해서는 안됩니까? 컬렉션>을 몇 가지 추가 종소리와 휘파람과 함께 사용하면됩니다. –
AlliterativeAlice
나는 당신이 여기서 무엇을 묻고 있는지 잘 모르겠습니다. 코드의 마지막 블록 ('단일 인스턴스와 컬렉션 객체'를 참조하는 곳)는'foreach' 루프를 통해 컬렉션의 각 항목을 반복하는 것입니다. 즉,'model' 컬렉션을 반복합니다. 콜렉션의 각 항목을 변수 m에 할당하고 변수 m에 액세스합니다. 여기에는 "둘 다"가 없으며 게시 된 코드에서 "커버 아래에"아무 것도 일어나지 않습니다. (나는하지 않았습니다. downvote - 당신의 qeustion은 분명하지 않고, 우리가 묻고있는 것을 명확하게하기 위해 [편집]을 요청합니다.) –
코드에 대해 이상하게 혼란스러운 점만 제외하면 –