powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нельзя описывать методы с одинаковыми сигнатурами.
10 сообщений из 35, страница 2 из 2
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065601
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProBiotekИзопропилнаглядное пособие - как раздуть из мухи слона -)

Форума то проста.Вопрос задан таков, что позволяет широкий выбор правильного ответа.
Появилось несколько вариантов, и, классически, началось обсуждение чужих решений.

В принципе, я и хотел узнать разные варианты, выбрал один из них.Дак напишите какой и почему. А то через год придёт подобный Вам персонаж и начнёт заного раздувать.
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065605
ProBiotek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAДак напишите какой и почему. А то через год придёт подобный Вам персонаж и начнёт заного раздувать.

ProBiotekЯ больше всего склоняюсь к решению bazile
Код: c#
1.
2.
3.
void Foo(int x, string s1 = "abc", string s2 = "def")
{
}


В целом наглядно. Желающие могут указывать как все опциональные параметры, так и часть.

:)
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065704
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAСлушай, давай я заменю Criteria на Command, или Action, или Predicat :)

Оформишь как лямда-билдер? Тогда ок!

skyANAКакая ещё семантика у тебя теряется? Мы задачи не знаем.

Семантика вызова функции. Функция требует объект. Где взять этот объект? Простой вопрос.

skyANAК примеру в CQRS есть Commands и есть Queries... И никакая семантика там не теряется, а код прикладнее некуда :)

Речь идёт о вызове функции из прикладного кода.

Сравни:

void SendMessage(string message);

void SendMessage(Message message);

в первом случае всё понятно, во втором, я должен знать чо такое Message, откуда его взять, и как его получить.

вместо второго варианта уж лучше выглядит

Message.Send();
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065719
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttСравни:

void SendMessage(string message);

void SendMessage(Message message);

в первом случае всё понятно, во втором, я должен знать чо такое Message, откуда его взять, и как его получить.


жмакаешь на Goto Implementation, а там
Код: c#
1.
2.
3.
4.
5.
6.
public struct Message
{
     private readonly string _message;
     private readonly long? _sessionId;
     ....
}



вместо второго варианта уж лучше выглядит

Message.Send();


Осталось только в Message сделать инжект сервиса отправки
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065744
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttРечь идёт о вызове функции из прикладного кода.

Сравни:

void SendMessage(string message);

void SendMessage(Message message);

в первом случае всё понятно, во втором, я должен знать чо такое Message, откуда его взять, и как его получить.

вместо второго варианта уж лучше выглядит

Message.Send();Случай "у одной ляльки семь нянек" ты не рассматриваешь? В очередной раз убил своей категоричностью.
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065745
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisОсталось только в Message сделать инжект сервиса отправкиОсобенно если Message создаётся каким-нибудь ормом вроде EF - как будем инжектировать? :-)
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065751
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КОсобенно если Message создаётся каким-нибудь ормом вроде EF - как будем инжектировать? :-)

Для этого нужно Message перегнать в MessageDTO, там все заинжектить, потом спокойно и прозрачно для всех делать MessageDTO.Send(), где сразу видно, что, как, зачем и почему. Уж лучше, чем этот ваш Send(Message message)!!!! :)
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39065754
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PallarisАлексей КОсобенно если Message создаётся каким-нибудь ормом вроде EF - как будем инжектировать? :-)

Для этого нужно Message перегнать в MessageDTO, там все заинжектить, потом спокойно и прозрачно для всех делать MessageDTO.Send(), где сразу видно, что, как, зачем и почему. Уж лучше, чем этот ваш Send(Message message)!!!! :)Уж лучше разделить логику и хранение данных, чем эти ваши DTO.
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39066196
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAСлушай, давай я заменю Criteria на Command, или Action, или Predicat :)

Оформишь как лямда-билдер? Тогда ок!Дык уже...

hVosttРечь идёт о вызове функции из прикладного кода.

Сравни:

void SendMessage(string message);

void SendMessage(Message message);

в первом случае всё понятно, во втором, я должен знать чо такое Message, откуда его взять, и как его получить.В первом случае вообще ни фига не понятно: ни что за сообщение (e-mail, sms, push-уведомление, собщение в Slack, чат), ни куда оно отсылается (адрес электронной почты, номер телефона, токен, группа в Slack, комната в чате).
Тупо какой-то текст.
Во втором случае ты видишь объект и предполагаешь очевидное, что он содержит всю необходимую информацию о том, куда будет послано сообщение.

Вообще должно быть так:
Код: c#
1.
Send(INotification notification)


и
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public class EmailNotification: INotification
{
    // ...
}

public class PushNotification: INotification
{
    // ...
}

public class SmsNotification: INotification
{
    // ...
}
...
Рейтинг: 0 / 0
Нельзя описывать методы с одинаковыми сигнатурами.
    #39066197
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Плюс в первом случае не понятен формат сообщения: это просто текст, или HTML, или XML, или JSON...
...
Рейтинг: 0 / 0
10 сообщений из 35, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Нельзя описывать методы с одинаковыми сигнатурами.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]