powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# 8 preview: Nullable reference types
13 сообщений из 38, страница 2 из 2
C# 8 preview: Nullable reference types
    #39820397
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНа то пошло, там нет циклов и переменных и вообще никаких рудиментов вроде классов, соответственно solid и всякие IoC в топку.
На то пошло, F# - это абсолютно совсем другая парадигма. Сравнивать его с C#.. ну, это примерно как C# сравнивать с SQL.
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820488
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныКакая-то неуклюжая попытка что-то сделать так, как надо было делать ровно наоборот: non-nullable reference types с синтаксисом типа
Код: c#
1.
void Foo(string! s) {...}



Это сильно противоречит имеющемся синтаксису nullable типов. Изначально мне тоже казалось, что non-nullable лучший вариант, и может уживаться с текущим кодом. Но нет. Библиотеки должны быть обратно совместимы.

А string! это совершенно новый тип, его протаскивать надо везде. В аргументах, в свойствах и локальных переменных. Поэтому не катит.
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820490
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglБезотносительно C#8, вместо string отлично передается null, как объектный тип )

Попытка подстелить соломку ?

Статическая проверка типов. Всё по феншую. Изначально ссылочные типы шли вразрез с этой идеей.
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820491
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНи каких вопросов :)
Код: c#
1.
2.
DateTime dateTime = default;
            var b = dateTime == null;



Это костыль )
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820494
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttА string! это совершенно новый тип, его протаскивать надо везде. В аргументах, в свойствах и локальных переменных. Поэтому не катит.
string? тоже надо, я выше давал ссылку, где чувак описывает случаи.
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820496
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕвгенийВНи каких вопросов :)
Код: c#
1.
2.
DateTime dateTime = default;
            var b = dateTime == null;



Это костыль )
Не костыль. Сам недавно чудом узнал, что если у структуры переопределен == то на сравнение с null компилятор не ругается )
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820502
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНе костыль. Сам недавно чудом узнал, что если у структуры переопределен == то на сравнение с null компилятор не ругается )

Там дело не в переопределении, по-моему. Просто структура отбоксится в object а потом сравнится с null.
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820505
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatЕвгенийВНе костыль. Сам недавно чудом узнал, что если у структуры переопределен == то на сравнение с null компилятор не ругается )

Там дело не в переопределении, по-моему. Просто структура отбоксится в object а потом сравнится с null.

Нет, я был не прав, там все еще хитрее. Ругаться компилятор не ругается, но все равно поступает умно и сравнение просто сразу же заменяет на false.
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820516
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВstring? тоже надо, я выше давал ссылку, где чувак описывает случаи.

ну ок, смотрим:

Код: c#
1.
2.
3.
public SomeType! SomeMethod(int a, string b, ClassType! t1, StructType t2)
{
}



Если бы МС пошли на такое, это был бы знатный фейл. Хорошо, что не облажались )
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820517
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВНе костыль. Сам недавно чудом узнал, что если у структуры переопределен == то на сравнение с null компилятор не ругается )

Собственно в этом и есть костыль, реализованный через переопределение )
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820526
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttА string! это совершенно новый тип
Ну да, аналогично было, когда вводились nullable value types.
hVosttего протаскивать надо везде. В аргументах, в свойствах и локальных переменных. Поэтому не катит.
Зачем? Когда вводились nullable value types, никто везде массово не менял int на int?, и не протаскивал Nullable<T> везде. Новая фича - для новых проектов, и рефакторинга старых по мере необходимости и наличия свободного времени. Старая остается на своем месте, и с ней работают по-старому.
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39820533
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fkthatЕвгенийВНе костыль. Сам недавно чудом узнал, что если у структуры переопределен == то на сравнение с null компилятор не ругается )

Там дело не в переопределении, по-моему. Просто структура отбоксится в object а потом сравнится с null.
Ответ Липперта .
...
Рейтинг: 0 / 0
C# 8 preview: Nullable reference types
    #39821019
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныhVosttА string! это совершенно новый тип
Ну да, аналогично было, когда вводились nullable value types.

Так это и были новые типы и соответствующая поддержка языка. Вводить обратное -- явное противоречие, с которым сложно будет работать.

Сон Веры ПавловныЗачем? Когда вводились nullable value types, никто везде массово не менял int на int?, и не протаскивал Nullable<T> везде.

Не скажи. Менял object на Nullable<T>. И протаскивал :)

Сон Веры ПавловныСтарая остается на своем месте, и с ней работают по-старому.

Обратная совместимость должна быть не только синтаксическая, но и семантическая.

int => int?
string => string?

логично? да.

int => int?
!string => string

херень какая-то. особенно для классов и структур.
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# 8 preview: Nullable reference types
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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