ReadOnlyCollection은 IList을 어떻게 구현할 수 있습니까? 후자는 Add 메서드를 구현해야하며 ReadOnlyCollection은이 메서드를 구현하지 않습니다. 그러나 ReadOnlyCollection는질문 인터페이스 정보
편집 ... 구체적이고 인스턴스화 할 수 다음 코드는 내 컴퓨터에서 컴파일되지 않습니다
:
static void Main(string[] args)
{
List<string> people = new List<string>(){
"Sidney",
"Jim",
"Bob"};
ReadOnlyCollection<string> readOnlyPeople = new ReadOnlyCollection<string>(people);
readOnlyPeople.Add("Frank");
}
마지막 성명에서 "추가"를 호출 Visual Studio 2010에서 파란색으로 밑줄이 그어졌습니다.
'Add' 메소드가 _explicitly_ 구현되어 있기 때문에 코드가 컴파일되지 않습니다. 액세스하려면 먼저 IList로 캐스팅해야합니다. –
나는 아직도 혼란 스럽다. '명시 적으로'구현 된 곳은 어디입니까? 나는 인터페이스가 메소드의 구현을 지원하지 않는다고 생각했다 ... – Andrew
당신은 인터페이스가 그 자체로 메소드를 구현하지 않는다는 것이 맞다. 명시 적 구현은 C#에서 특별한 것입니다 - [자세한 내용은이 답변을 참조하십시오] (http://stackoverflow.com/questions/143405/c-interfaces-implicit-and-explicit-implementation). –