Dies ist explicit interface implementation eines indexer. (EDIT:. Der IDatatErrorInfo.
Teil der Signatur bedeutet die explizite Schnittstellenimplementierung und der .this[...]
Teil bedeutet einen Indexer)
Es genannt werden würde, wenn Sie ein typisierten explizit IDataErrorInfo
Objekt und Sie auf es eckige Klammer abrufen/erhalten einen Wert, während in einen String übergeben. Zum Beispiel:
IDataErrorInfo myDataErrorInfo = GetErrorInfo();
string myPropertyError = myDataErrorInfo["SomePropertyName"];
Beachten sie, dass, da es sich um eine explizite Schnittstellenimplementierung ist, ist es nur zugänglich ist, wenn der Typ genau als IDataErrorInfo
bekannt ist. Wenn Sie es eingegeben als Unterklasse haben, wird es nicht zugänglich sein, es sei denn, dass die Klasse es macht:
MyDataErrorInfoImpl myDataErrorInfo = GetErrorInfo();
string myPropertyError = myDataErrorInfo["SomePropertyName"]; //compiler error!
I _think_ das ist [explizite Schnittstellenimplementierung] (http://msdn.microsoft.com/en-us/library/vstudio/ms173157.aspx) eines [indexer] (http://msdn.microsoft.com) /en-us/library/vstudio/6x16t2tx.aspx) und es würde aufgerufen werden, wenn Sie ein explizit typisiertes 'IDataErrorInfo' Objekt haben, wo Sie schreiben:' string myPropertyError = myDataErrorInfo ["SomePropertyName"]; ' –
Ja, es ist nur explizit Schnittstellenimplementierung. Ist Ihnen das allgemein bekannt? (Wenn nicht, schau einfach nach.) –
@JonSkeet Ich habe eine ungefähre Vorstellung davon, was es bedeutet, eine Schnittstelle explizit zu implementieren (ich [fragt] (http://programmers.stackexchange.com/q/136319/1130) an Programmierer.SE darüber eine Weile zurück), aber die '.this [String EigenschaftName]' war der Hauptteil, den ich nicht ganz verstanden habe. – Rachel