Size: a a a

var chat = new Chat();

2021 September 12

MN

Mr. N in var chat = new Chat();
если есть то MVC нервно курит в сторонке)
источник

MN

Mr. N in var chat = new Chat();
+
источник

Ɖ

Ɖrēw in var chat = new Chat();
Адаптер ты то писать будешь, но гораздо удобнее, когда тебе ad hoc реализацию интерфейса на наследника не надо вешать, например и работать с такими сущностями напрямую
источник

UD

Uno Dark in var chat = new Chat();
Я канешно извиняюсь что залажу в ваш спор но, при помощи аутомапера такую задачу не решить?
источник

Ɖ

Ɖrēw in var chat = new Chat();
Автомаппер решает другую задачу
источник

E

Etki in var chat = new Chat();
Почему? У тебя в любом случае с одной стороны контракт, с другой что-то ему не соответствующее, разницы вообще никакой.
источник

Ɖ

Ɖrēw in var chat = new Chat();
Мы щас не про проблему перехода из одного слоя в другой
источник

MN

Mr. N in var chat = new Chat();
патерн адаптер
источник

UD

Uno Dark in var chat = new Chat();
Пишешь клас в который будешь мапать туда и обратно только те поля которые нужно и уже с ним работаешь?
источник

Ɖ

Ɖrēw in var chat = new Chat();
Ну вот есть у тебя

class Payment1 : IPayment {
   public int Id { get; }
}

class SomeOtherPaymentFromOtherLib {
   public int Id { get; set; }
}

Тебе надо адаптировать это все под 1 класс чтобы нормально с этим работать, даже для простейших операций
Например ты хочешь с помощью 1 функции вернуть Id любого платежа у которого этот Id есть
Через дженерик ты такого не выразишь. будешь писать маппинги в свою модель и из нее доставать
Дальше псевдокод:

int inline GetGenericId<T>(T paymentModel) where T : { int Id { get; } } {
   return paymentModel.Id;
}

И просто ее используешь до перехода на свой уровень адаптерный (опять таки, ты щас скажешь что это не нужно. мне было нужно и это было удобнее)
источник

Ɖ

Ɖrēw in var chat = new Chat();
Шо можно еще сделать:

Из какой то либы:
class Payment1 : IPayment {
   public int Id { get; }
}

Свой интерфейс:
interface IMyPayment {
   int Id { get; }
}

class MyPayment1 : Payment1, IMyPayment { }

Ad-hoc в данном случае кстати хуй знает сработает ли ибо Id внутри класса может быть уже привязан к реализации другого интерфейса
источник

E

Etki in var chat = new Chat();
Да, я прекрасно понимаю как это работает, я тебе говорю что а) сценарий получения айдишника сам по себе не имеет смысла и б) когда будешь подключать третью сущность, там оно будет названо уже Reference, и весь твой механизм отправится на переписывание по классике
источник

MN

Mr. N in var chat = new Chat();
dynamic я думаю поможет
источник

E

Etki in var chat = new Chat();
А ты хорош!
источник

MN

Mr. N in var chat = new Chat();
)
источник

MN

Mr. N in var chat = new Chat();
Если-б додеали-б тот source generator , то такое можно впринцепе зделать
источник

MN

Mr. N in var chat = new Chat();
а может и не
источник

MN

Mr. N in var chat = new Chat();
ну почти
источник

Ɖ

Ɖrēw in var chat = new Chat();
Ну в твоем понимании может смысла не имеет. я ж не спорю
источник

Ɖ

Ɖrēw in var chat = new Chat();
У каждого свой опыт был
источник