Ilya
К тому же init отдельно от рекордов
Ayrat
ладно, это наверное очень полезно!
Ilya
new WeatherObservation
{
RecordedAt = DateTime.Now,
TemperatureInCelsius = 20,
PressureInMillibars = 998.0m
};
Ayrat
чем кстати это отличается от конструктора?
Vasily
Ilya
В не рекордах просто можно задать значение только в object initializer
Ilya
Без копии
Ayrat
Vasiliy
о щас мясо будет
Vasiliy
рекодры в c#!
Ilya
Ilya
Просто класс
Ayrat
рекодры в c#!
не, рекорды охуенно
инит проперти - я не понял
Ilya
public struct WeatherObservation
{
public DateTime RecordedAt { get; init; }
public decimal TemperatureInCelsius { get; init; }
public decimal PressureInMillibars { get; init; }
public override string ToString() =>
$"At {RecordedAt:h:mm tt} on {RecordedAt:M/d/yyyy}: " +
$"Temp = {TemperatureInCelsius}, with {PressureInMillibars} pressure";
}
Ayrat
Ayrat
это же рекорд с методом
Ayrat
нахуя этот бойлерплейр
Ilya
Ayrat
Это пример с мсдн
охуенно, спрошу тебя - это рекорд. почему нельзя написать нормаль?
Vasily
Чую, Илья может случайно проиграть этот спор
Vasily
Учитывая историю рекордов
Ayrat
record WeatherObservation(
DateTime RecordedAt,
decimal TemperatureInCelsius,
decimal PressureInMillibars) {
public override string ToString() =>
$"At {RecordedAt:h:mm tt} on {RecordedAt:M/d/yyyy}: " +
$"Temp = {TemperatureInCelsius}, with {PressureInMillibars} pressure";
}
Ayrat
и смотри, еще меньше говнокода получилось
Ayrat
праймари КОНСТРУКТОР и погнали
Ayrat
и пользуешься конструктором
Vasily
@ilchert , прежде чем вступать в споры, рекомендую все же ознакомиться с фактологической базой, на которую опирается оппонент
Sergey
Ayrat
Ayrat
там же рекорды с праймари конструктором дали
Sergey
я прост недотнетчик хз че там добавили )
Ayrat
ну вот наконец добавили
Ayrat
Ayrat
для этого и сделали конструктор же...
Igor
Ilya
Заебись логика
Ayrat
Ayrat
а проперти не надо будет матчить в рефлексии?
Ilya
Снаружи класса
Ilya
Ilya
Тебе компилятор подставляет свойства объекта
Ayrat
а, я тебя понял. но это делается по-другому.
То что появляется в праймари конструкторе делается пропертями - как в рекордах - автоматом
Ilya
Ayrat
Doge
@omgszer @vshapenko @ilchert
Вот вам и рекорды шарповые с init
Doge
https://twitter.com/Tyrrrz/status/1342077569622044673?s=09
Ilya
сделай
Разве можно писать код в праймари конструкторах?
Tako
Vasiliy
пиздец
Там завели баг уже на это.
Ayrat
Разве можно писать код в праймари конструкторах?
ну в фшарпе можно
type C(a: int) =
do printfn "%d" a
member val A = a with get
https://sharplab.io/#v2:DYLgZgzgPg9gDgUwHYAIDKBPCAXBBbAWAChsNEUBhACgEMQUBLJbAShQF5iUUATGFOACcm2MKgBEAUh7iUNLijz4ARgkEoAbjWAoAghzkoA7g2wALFAHME2IA===
Ayrat
код в теле типа будет выполнен на праймари конструкторе
Ayrat
Ilya
Vasily
Ayrat
мне кстати дизайн котлина (и вроде скалы) на праймари конструкторе больше нравится
Kotlin
data class Foo(private val a: Int) // приватное поле
data class Foo(val a: Int) // публичное иммутабельное
data class Foo(var a: Int) // публичное мутабельное
Scala
case class Foo(a: Int) // приватное поле
case class Foo(val a: Int) // публичное иммутабельное
case class Foo(var a: Int) // публичное мутабельное
Vasily
Я больше скажу
Vasily
Многие из них не подозревают о существовании фшарпа
Vasiliy
хм, слушайте может init нужен для сериализации\десериализации?
Vasily
Нет
Ayrat
Ilya
Vasily
Ayrat
Vasily
Как ты думаешь, когда эти проекты переедут на рекорды?
Ayrat
я вот не понял какие проблемы юзать конструктор
Ayrat
потому что НУТОНСОФТ тыщу лет так делал
Ayrat
и все работало
Ilya
Ilya
Версия языка на связана с рантаймом
Vasily
Илья, к сожалению, отличается отсутствием критического мышления
Ilya
А 5 дотнет все таки не лтс
Vasiliy
Vasiliy
.net 6 lts, потом народ начнет узнавать про рекорды