Код возвращает true
, если тип имеет свойство, и false
, если его нет.
Этот код будет написан внутри обобщенного класса с параметром типа T. В обобщенных случаях каждый раз, когда «обобщенный» тип используется с обобщенным классом, компилятор создает новый конкретный тип. Так, например, если бы в вашем проекте был код, который использовал ViewModelBase<int>
, ViewModelBase<string>
и ViewModelBase<MyType>
, в окончательной сборке компилятором было бы три конкретных типа.
Каждый из этих трех гипотетических типов будет иметь свойства и методы. Приведенный выше код (для всех намерений и целей) будет продублирован три раза, а параметр типа "T" будет заменен на int
, string
и MyType
в каждом из трех случаев.
GetProperty()
затем проверит, имеет ли конкретный тип свойство, указанное в переменной «propertyName», и вернет соответственно true или false.