Size: a a a

2020 March 05

ДБ

Дима Безотосный... in CODE BLOG / C#
И там где используется атрибут DisplayName должен реализовываться
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Дима Безотосный
Можно. Просто появляется интерфейс, без которого метод расширения работать не будет
а для чего ты тогда интерфейс делал?
источник

GK

Gennady Kurbesov in CODE BLOG / C#
если указываешь where t : IDisplayName
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
Gennady Kurbesov
а для чего ты тогда интерфейс делал?
Чтобы нельзя было искать поля в любом классе, для ограничения
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Дима Безотосный
Чтобы нельзя было искать поля в любом классе, для ограничения
по-моему смысл не меняется
источник

GK

Gennady Kurbesov in CODE BLOG / C#
если только ты не будешь реализовывать ещё интерфейсы, которые нужно будет перечислить во where T
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
Gennady Kurbesov
по-моему смысл не меняется
Если класс не наследник IDisplayName  - метод расширения GetDisplayName будет не доступен
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Дима Безотосный
Если класс не наследник IDisplayName  - метод расширения GetDisplayName будет не доступен
он у тебя и в твоем варианте не будет доступен другим объектам, которые сейчас не наследуют его
источник

ch

central hardware in CODE BLOG / C#
Дима Безотосный
Если класс не наследник IDisplayName  - метод расширения GetDisplayName будет не доступен
а если там одно поле с анотацией а другое без?
источник

GK

Gennady Kurbesov in CODE BLOG / C#
я вот к чему.
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
Gennady Kurbesov
он у тебя и в твоем варианте не будет доступен другим объектам, которые сейчас не наследуют его
Правильно. IDisplayName типа указывает, что обьект обязательно содержит атрибут DisplayName
источник

GK

Gennady Kurbesov in CODE BLOG / C#
Дима Безотосный
Правильно. IDisplayName типа указывает, что обьект обязательно содержит атрибут DisplayName
еще интерфейсы будут, которые будут расширяться этим методом?
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
central hardware
а если там одно поле с анотацией а другое без?
Думаю выдавать имя поля, если оно не помечено атрибутом
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
Gennady Kurbesov
еще интерфейсы будут, которые будут расширяться этим методом?
Нет
источник

GK

Gennady Kurbesov in CODE BLOG / C#
тогда избавляйся от дженерика, они влияют на производительность
источник

GK

Gennady Kurbesov in CODE BLOG / C#
я к этому и веду. Что если метод расширения только для этого интерфейса и не предполагается для еще каких либо, то от дженерика лучше избавиться и просто указать GetDisplayName(this IDisplayName _, Expression<Func<IDisplayName, object>> propertyExpression)
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
Gennady Kurbesov
я к этому и веду. Что если метод расширения только для этого интерфейса и не предполагается для еще каких либо, то от дженерика лучше избавиться и просто указать GetDisplayName(this IDisplayName _, Expression<Func<IDisplayName, object>> propertyExpression)
Тут я согласен. Только в таком случае я не смогу получить доступ к свойствам, только к IDisplayName. Или смогу?
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
Точнее пропадет это
person.GetDisplayName(x => x.Age);
источник

GK

Gennady Kurbesov in CODE BLOG / C#
ты передаешь свойство, имя которого нужно вывести?
источник

ДБ

Дима Безотосный... in CODE BLOG / C#
Gennady Kurbesov
ты передаешь свойство, имя которого нужно вывести?
Да
источник