Почему конструктор по умолчанию в новой записи Struct Dellault по умолчанию (запись)?C#

Место общения программистов C#
Ответить
Anonymous
 Почему конструктор по умолчанию в новой записи Struct Dellault по умолчанию (запись)?

Сообщение Anonymous »

Если у меня есть запись, определенная как: < /p>

Код: Выделить всё

    public record struct MyRecord(string Whatever = "anything"){
public DateTime  Start {get; init;} = DateTime.UtcNow;
public DateTime? End   {get; init;}
}
, а затем в моем коде запустите новый myrecord () , фактический код, сгенерированный для этого по умолчанию (myrecord) .
Если я предоставляю значение для любого из значений первичного конструктора (т.е. в парантеесах). Дело это приводит к тому, что начальное значение всегда будет 0 тика (т.е. 01/01/0001 00:00:00).
sharplabs
Почему он это делает?

Код: Выделить всё

    [method:System.Runtime.CompilerServices.OverloadResolutionPriority(1)]
public record struct MyRecord(string Whatever = "anything"){
public DateTime  Start {get; init;} = DateTime.UtcNow;
public DateTime? End   {get; init;}
}
с этим новым myrecord () правильно использует определенный конструктор.

Подробнее здесь: https://stackoverflow.com/questions/749 ... aultrecord
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»