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)。 –