Size: a a a

2021 May 02

AK

Andrei Kurosh in pro.net
учитывая что в дотнете практически _любая_ операция может кинуть исключение, думать что мы написали явную проверку option и тем самым от чего-то обезопасились довольно наивно
источник

IC

Ilya L Che in pro.net
Попробуй на сишарпе написать банальный
match a with
| true -> Console.WriteLine("Hop")
| false -> Console.Write("Hey")
И рекорды в сишарпе хуже читаются из-за того, что тип идёт до имени. Хотя я не исключаю, что это просто с непривычки пока.
источник

AK

Andrei Kurosh in pro.net
if(a) ... else ... - даже лаконичнее получается
источник

W

WhiteBlackGoose in pro.net
Ну да, void тяжело как тип воспринимать. Оч жду, когда сделают
1) Нормальный свитч для воида
2) Многострочные кейсы
источник

IC

Ilya L Che in pro.net
Согласен. Если это enum из 4 кейсов, то тоже через if-else предложишь писать?
источник

W

WhiteBlackGoose in pro.net
Ну вообще говоря про рекорды, я их редко как dto воспринимаю. Я их юзаю так же, как люди юзают DU в F#. Поэтому для меня они одинаково работают. (а смысл свитчиться по dto?)
источник

AK

Andrei Kurosh in pro.net
ну да, в целом согласен - своих косяков хватает (в частности, невозможность объединить Task/Task<T>)
источник

IC

Ilya L Che in pro.net
Я не понимаю, как рекорды можно юзать в качеству DU. В любом языке, хоть в фшарпе, хоть в сишарпе.
источник

W

WhiteBlackGoose in pro.net
В фшарпе хз, в сишарпе наследуешься от базового рекорда, наделаешь своих рекордов, и свитчишься так же, как в F# по DU. Ну то есть вряд ли ты не знал этого, но в чем проблема?
источник

IC

Ilya L Che in pro.net
В том, что это не DU ._.
источник

W

WhiteBlackGoose in pro.net
Ну да, еще _ => throw new Exception() нужен
источник

M

Mikhail in pro.net
Проблема в том что это не du как минимум из-за отсутствия адекватной проверки в компайл тайм при матчинге. Плюс это и без рекордов можно было делать
источник

IC

Ilya L Che in pro.net
То есть это не DU ._.
источник

W

WhiteBlackGoose in pro.net
Да ._.
источник

W

WhiteBlackGoose in pro.net
Просто U
источник

W

WhiteBlackGoose in pro.net
Наследование + свитч, который возвращает + deconstruct
источник

D

Denisio in pro.net
продолжаем норкоманию https://github.com/dotnet/runtime/issues/51654
источник

RS

Rustam Sayfutdinov in pro.net
Там как всегда котас принес норм идею)
источник

V

Vyacheslav in pro.net
Не будет же.
источник

V

Vyacheslav in pro.net
Кстати, а для #nullable есть extension, вида
static IEnumerable<T> WhereNotNull(this IEnumerable<T?> e) => e.Where(i => i != null)!;
?
источник