Это explicit interface implementation of indexer. (EDIT:. IDatatErrorInfo.
части подписи означает явную реализацию интерфейса, а .this[...]
часть означает индексатор)
Это будет называться всякий раз, когда у вас есть явно набрал IDataErrorInfo
объект и использовать квадратные скобки на нем, чтобы получить/получить значение при переходе строки в Например:.
IDataErrorInfo myDataErrorInfo = GetErrorInfo();
string myPropertyError = myDataErrorInfo["SomePropertyName"];
Обратите внимание, что поскольку это явная реализация интерфейса, он будет доступен только тогда, когда тип известен точно как IDataErrorInfo
. Если вы его набрали в качестве подкласса, он не будет доступен, если этот класс не выставляет его:
MyDataErrorInfoImpl myDataErrorInfo = GetErrorInfo();
string myPropertyError = myDataErrorInfo["SomePropertyName"]; //compiler error!
I _think_ это [явная реализация интерфейса] (http://msdn.microsoft.com/en-us/library/vstudio/ms173157.aspx) [indexer] (http://msdn.microsoft.com). /en-us/library/vstudio/6x16t2tx.aspx), и он будет вызываться всякий раз, когда у вас есть явно типизированный объект IDataErrorInfo, в котором вы пишете: 'string myPropertyError = myDataErrorInfo [" SomePropertyName "];' –
Yup, это просто явный интерфейс. Вы знаете об этом вообще? (Если нет, просто просмотрите его.) –
@JonSkeet У меня есть приблизительное представление о том, что означает явно реализовать интерфейс (я [спросил] (http://programmers.stackexchange.com/q/136319/1130) на Programmers.SE об этом некоторое время назад), но '.this [string propertyName]' была основной частью, которую я не совсем понял. – Rachel