170 похожих чатов

Вечер добрый! Хотелось бы сделать дженерик метод, который заведомо будет

получать класс, в котором прописан TryParse и уже проверял бы внутри на возможность парсинга входных данных именно по этому типу. TryParse, как я понял, ни к какому интерфейсу не привязан. В таком случае, как можно реализовать Generic TryParse?

12 ответов

12 просмотров

Я примерно так сделал.

https://sharplab.io/#v2:DYLgZgzgNALiBOBXAdlAJiA1AHwPYAcBTZAAgGUBPCGQgWwFgAoJ4QmEgS2WC8JPwCG8CIQA8JAHoCSAdwAWxSQJAkAFNQEwOAYxK06AI0LwSAFXgUACkJErq8LgHMSAKiUkDFeITAkAtAB8Hri4wACUQTQAHuwAvEwkiSSs7LSIMAIGrCTeEIjAcSQAqsjaCtoA1oRoAHRoPgL5MLhg4lIBCUkpnBBkiNrahBAQJLFqUiQq6hlauvq0RibmVjaEdjAOyM5uE57evoHBoWFq0TBQJABkuU1hYZ2JHL4cvf2DwyQwCqRkuPo5QyaJEIwBEJAAcrhkIQmExBMIxAARTSEUwcfRBABEACYAAwARgArH4CST8ZimNggvhNjAwKRMQBSACCFOYjHhIlEXBgWPx2IAzGyqfxafSSEzWbCOatRGhcIgsoQsWB+hVhdSxQyWZigA

есть мозголомный вариант, за который закидают камнями, но решать только тебе: - создаёшь интерфейс IParser, где прописываешь метод TryParse - создаёшь структуру! которая реализует IParser - пишешь вот так default(T).TryParse(...) - PROFIT

fnop- Автор вопроса
Yurii Nskyi
есть мозголомный вариант, за который закидают камн...

Звучит заманчиво, но не совсем понимаю всей идеи...

fnop- Автор вопроса
Yurii Nskyi
напиши вместо T - default(T)

Так ведь нужно подтянуть экземпляр структуры сначала?..

fnop
screenshot Так ведь нужно подтянуть экземпляр структуры снача...

напиши private static string Counter<T>(string[] words, int index) where T : IParser

fnop
screenshot Так ведь нужно подтянуть экземпляр структуры снача...

Заведи булевскую функцию и назови его как-то нормально, а то это нечитабельно

fnop- Автор вопроса
Yurii Nskyi
напиши private static string Counter<T>(string[] w...

Вероятно, предельно туплю, ибо не работал с подобным Но теперь сорит ошибками при вызове...

fnop
screenshot Вероятно, предельно туплю, ибо не работал с подобн...

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters

fnop- Автор вопроса
Yurii Nskyi
https://docs.microsoft.com/en-us/dotnet/csharp/pro...

Спасибо! Правда, решилось всё гораздо проще) https://coderoad.ru/2961656/%D0%A3%D0%BD%D0%B8%D0%B2%D0%B5%D1%80%D1%81%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9-%D0%9C%D0%B5%D1%82%D0%BE%D0%B4-Tryparse

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
Карта сайта