Tôi đã luôn triển khai giao diện IDataErrorInfo mà không thực sự tự hỏi ý nghĩa của dòng này và cách hoạt động của nó.IDataErrorInfo.this [string propertyName] hoạt động như thế nào trong C#?
string IDataErrorInfo.this[string propertyName]
{
get { return this.GetValidationError(propertyName); }
}
.this[string propertyName]
hoạt động như thế nào và khi nào thì tài sản này được gọi?
Tôi _think_ đây là [triển khai giao diện rõ ràng] (http://msdn.microsoft.com/en-us/library/vstudio/ms173157.aspx) của [indexer] (http://msdn.microsoft.com /en-us/library/vstudio/6x16t2tx.aspx) và nó sẽ được gọi bất cứ khi nào bạn có một đối tượng 'IDataErrorInfo' được gõ rõ ràng nơi bạn viết:' string myPropertyError = myDataErrorInfo ["SomePropertyName"]; ' –
Yup, nó chỉ rõ ràng thực hiện giao diện. Bạn có biết điều đó nói chung không? (Nếu không, chỉ cần nhìn nó lên.) –
@JonSkeet Tôi có một ý tưởng thô về ý nghĩa của việc thực hiện một giao diện một cách rõ ràng (tôi [yêu cầu] (http://programmers.stackexchange.com/q/136319/1130) về Programmers.SE về điều đó một lúc trở lại), nhưng '.this [string propertyName]' là phần chính mà tôi không hiểu lắm. – Rachel