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

Спасибо. Так делал, но просто через конструктор. Все же не

понимаю зачем тогда нужен такой синтаксис с

new Model() { someProperty = "Foo" }

если компилятор не ругается, если я в курли что-то упущу, это же нетипобезопасно, почему так?

9 ответов

1 просмотр

Хочешь делать типобезопасно - делай типобезопасно

Потому что это сокращённый синтаксис к var o = new Class(); o.SomeProp = 123; Компилятор тут тоже не будет жужжать если что-то упустить ¯\_ (ツ) _/¯

Alex 🗽👇- Автор вопроса
SomebodyOdd
Потому что это сокращённый синтаксис к var o = ne...

Хм, вот как. Ну логично. Тогда почему можно создать пустой объект, если внутри класса есть проперти, которые никак явно не заполняются. Скорей всего это базовое правила линтера, что бы иметь всегда конструктор для модели, я его просто еще не накатил. Все равно ощущается как дыра. Может просто язык не такой модный, как Swift, Rust и прочие, где прямо есть Optional тип и все вокруг него крутится, что бы нигде никакой налл не проскочил. В общем, исторически сложилось или что-то в этом роде.

Alex 🗽👇
Хм, вот как. Ну логично. Тогда почему можно создат...

Если у класса есть доступный пустой конструктор - значит можно его вызвать (duh). Если его не будет, то и без параметров такой трюк тоже не сработает.

Alex 🗽👇
Хм, вот как. Ну логично. Тогда почему можно создат...

Так уж исторически сложилось. Но последние версии упорно пытаются это исправить: nullable reference types, init accessor. Финальным шагом планирует required keyword завести https://github.com/dotnet/csharplang/issues/3630 Глядишь в будущих версиях проблему полностью решат.

Alex 🗽👇- Автор вопроса
SomebodyOdd
Потому что это сокращённый синтаксис к var o = ne...

Я уже понял, что сахар, как господин тут написал

Alex 🗽👇- Автор вопроса
SightRo
Так уж исторически сложилось. Но последние версии ...

Понятно, язык не новый, тогда не парились таким, как и вообще особо нигде. Хотел просто удостоверится в версии своей.

Потому что C# как обычно все украл у VB, где испокон веков был With statement )

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Всем здравствуйте!) У меня такой вопрос. Есть два роута, роут1 и роут2. Они связаны с очередью some_queue. По задаче предполагается, что есть два паблиша. Паблиш1 отправляет...
Format
10
Вопрос по WIN32: Насколько я понимаю то все функции win32 привязаны к объектам операционной системы. Например консоль, файл, кисть, окна итд. Следовательно функции win32 упра...
Tommy Vercetti
6
Hello, can I install macOS and run flutter on a virtual machine? Is it possible to print for iphone?
Mazones
11
кто-то пользуется компонентами rx ? как их лучше ставить, через OPM? (lazarus)
Iluha Companets
15
В смысле более затратная? Общая стоимость владения лошадью меньше, чем автомобиля. В среднем.
Sergej R
10
подскажите пожалуйста, как мне освободить результат записанный в переменную result? в чем проблема подскажите если МОЖЕТЕ?
Михаил Helper
28
есть тут кто-то , кто только начал изучать си? если проходите курс на степике или как-то сами изучаете, пишите, может, скооперируемся?..
Eule
25
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Слушайте, ещё такая интересная задачка. Сделан аудит действий пользователей через триггеры в базе, соответственно каждый пользователь имеет свой логин и пароль в базе. Это пре...
Сергей Бычков
12
Карта сайта