Size: a a a

2020 January 21

AT

Alexey Tkachenko in pro.net
Artöm Bakri Al-Sarmini
В шарпе null имеет тип?
Отдельный -- нет, но само значение всегда имеет тип
источник

vl

vova lantsov in pro.net
Ilya Chernoudov
левая и правая части должны иметь одинаковый тип или быть эезепшеном
Или реализовать 1 и тот же интерфейс/класс, с явным кастом
источник

IC

Ilya Chernoudov in pro.net
Artöm Bakri Al-Sarmini
Или иметь общий тип
да)
источник

AB

Artöm Bakri Al-Sarmini in pro.net
Там наоборот, оставить нулл, ненулл поменять на 42
источник

IC

Ilya Chernoudov in pro.net
а nullable struct это просто сахар
источник

AT

Alexey Tkachenko in pro.net
Artöm Bakri Al-Sarmini
Как в плюсах nullptr имеет тип nullptr_t. Можно было бы сделать T? общим типом для System.NullType и T, где T: struct. Хотя это слишком неявно
В плюсах nullptr - это "специальное" значение времени компиляции с типом nullptr_t, имеющий неявный каст к любому типу указателя
источник

AT

Alexey Tkachenko in pro.net
Ilya Chernoudov
левая и правая части должны иметь одинаковый тип или быть эезепшеном
Тогда default(int?)
источник

AB

Artöm Bakri Al-Sarmini in pro.net
Alexey Tkachenko
В плюсах nullptr - это "специальное" значение времени компиляции с типом nullptr_t, имеющий неявный каст к любому типу указателя
Это я знаю. Я говорил в контексте той идеи выше. Которая мне уже не нравится
источник

K

Katz in pro.net
return s switch { null => null, _ => 42 }
источник

K

Katz in pro.net
Katz
return s switch { null => null, _ => 42 }
Интересно, что будет. Скорее всего то же ограничение, что и с тернарником будет.
источник

AT

Alexey Tkachenko in pro.net
Ilya Chernoudov
а nullable struct это просто сахар
Не совсем
источник

IC

Ilya Chernoudov in pro.net
Alexey Tkachenko
Тогда default(int?)
работает)
источник

IC

Ilya Chernoudov in pro.net
Alexey Tkachenko
Не совсем
именно так)
источник

IC

Ilya Chernoudov in pro.net
в упаковке/распаковке
источник

AB

Artöm Bakri Al-Sarmini in pro.net
Ilya Chernoudov
работает)
Еще должно работать (int?)42
источник

B

Bretbas in pro.net
vova lantsov
Скорее всего это из-за TKey, т.к. тип может реализовать несколько интерфейсов IEquatable
но по идее компилятор может вывести это все из моего User
источник

AB

Artöm Bakri Al-Sarmini in pro.net
Bretbas
Народ. Написал себе вот такой метод extensions для UserManager<TUser>.
Почему при вызове:
userManager.GeneratePhoneNumberConfirmationTokenAsync<User, int>(newUser)
он меня заставляет указывать параметры-типы дженериков?
Неужели компилятор не может понять, что User, которого я сую в параметр метода, наследует IdentityUser<int> ?
И из этого вывести сам TUser и TKey соответственно?
Потому что TKey не выводится из аргументов
источник

AB

Artöm Bakri Al-Sarmini in pro.net
Bretbas
Народ. Написал себе вот такой метод extensions для UserManager<TUser>.
Почему при вызове:
userManager.GeneratePhoneNumberConfirmationTokenAsync<User, int>(newUser)
он меня заставляет указывать параметры-типы дженериков?
Неужели компилятор не может понять, что User, которого я сую в параметр метода, наследует IdentityUser<int> ?
И из этого вывести сам TUser и TKey соответственно?
where не влияет на дедукцию типов
источник

AH

Ayrat Hudaygulov in pro.net
Artöm Bakri Al-Sarmini
where не влияет на дедукцию типов
И это плохо, инфа-то есть
источник

B

Bretbas in pro.net
Artöm Bakri Al-Sarmini
where не влияет на дедукцию типов
что такое дедукция типов? Где почитать?
что то в Рихтере не нашел такого
источник