Size: a a a

2021 March 26

P

Phantom in .NET Talks 🎄
Dr. Friedrich von Never
Когда занимаешься каком-нибудь скриптунством — такое может быть удобно.
Так, он не возвращает делегат, а сразу выполняет
источник

AA

Anton Antonov in .NET Talks 🎄
А может кто нибудь подсказать чтива, чтобы почувствовать зачем нужно nullable reference types и соответственно вся эта коллекция операторов ?? и ? и  !. и т.п. А то как-то в msdn жидинько, а начинаю смотреть например this https://github.com/dotnet/runtime/blob/78f980384f34f73dd99717da15ba12da1c589961/src/libraries/System.Collections/src/System/Collections/Generic/LinkedList.cs#L612 и вроде понятно, а вроде нет
источник

P

Phantom in .NET Talks 🎄
Phantom
Так, он не возвращает делегат, а сразу выполняет
А бля, не так увидел
источник

S

SomebodyOdd in .NET Talks 🎄
Чем-то похоже на tap в rxjs. Просто чтобы были побочные эффекты, а само значение остаётся нетронутым
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Anton Antonov
А может кто нибудь подсказать чтива, чтобы почувствовать зачем нужно nullable reference types и соответственно вся эта коллекция операторов ?? и ? и  !. и т.п. А то как-то в msdn жидинько, а начинаю смотреть например this https://github.com/dotnet/runtime/blob/78f980384f34f73dd99717da15ba12da1c589961/src/libraries/System.Collections/src/System/Collections/Generic/LinkedList.cs#L612 и вроде понятно, а вроде нет
Нужно, чтоб код не падал с NRE.
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Ну или хотя бы делал это поменьше :)
источник

AA

Anton Antonov in .NET Talks 🎄
А почему просто не сделать проверку на null
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Anton Antonov
А почему просто не сделать проверку на null
В каждой строчке?
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Эту проверку, если что, уже сделали в рантайме. И она кидает NRE в случае провала :)
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Любая твоя обобщённая проверка, которая есть везде-везде, по информативности будет примерно такого же уровня.
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
А выполнить работу метода, не бросая исключений в случае ошибки, возможно не всегда.
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Поэтому рано или поздно ты столкнёшься с ситуацией, когда в каком-то методе контракт говорит, что нулла тут быть не может, и проверять нечего.
источник

AS

Andrew Shurunov in .NET Talks 🎄
Anton Antonov
А почему просто не сделать проверку на null
К тому же так ты сразу доносишь до программиста, какие твои аргументы позволяют null, а какие нет
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Вот чтобы этот контракт вынести в компил-тайм, и нужны nullable ref types.
источник

AA

Anton Antonov in .NET Talks 🎄
Ок. Спасибо
источник

АО

Антон Осадчий... in .NET Talks 🎄
А раньше все референс типы были нуллабл? Т.е. нуллабл типы нужны, чтобы воспроизводить то как было раньше?
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Антон Осадчий
А раньше все референс типы были нуллабл? Т.е. нуллабл типы нужны, чтобы воспроизводить то как было раньше?
Они и сейчас все нулабл.
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Ну, тут нужно различать модель с точки зрения рантайма и с точки зрения компилятора.
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
Причём у самого компилятора таких моделей к тому же несколько, и в местах стыка всё становится ещё в два раза веселее.
источник

Dv

Dr. Friedrich von Ne... in .NET Talks 🎄
В рантайме любой ref type по сей день является nullable. Тебе могут подсунуть нулл в ненулабельную позицию разными способами.
источник