Во время выполнения проверки кода я нашел код, который мог бы сократить потенциальные ошибки, используя шаблон объекта Null. Затем я начал думать: не было бы полезно, если значение по умолчанию для этого бизнес-объекта было нулевым объектом вместо нулевой ссылки?
Поскольку С# предоставляет оператор по умолчанию, я попытался перегрузить его следующим образом:
public static MyObject operator default (MyObject object)
{
return MyObject.Null;
}
Это дает мне ошибку: "Ожидается перегружаемый унарный оператор". При дальнейшем копании я обнаружил, что в одной части документов указано, что значение по умолчанию (T) является оператором Primary: Перегружаемые операторы.
И когда вы на самом деле нажимаете на значение по умолчанию (T) на приведенной выше странице, оно говорит, что по умолчанию это ключевое слово.
Кроме того, на этой странице не указано, что значение по умолчанию не является перегружаемым: Перегружаемые операторы (Руководство по программированию на С#).
Я знаю, что это своего рода академический, но я пытаюсь понять язык глубже. Что такое по умолчанию (T)? Это оператор или ключевое слово? И почему это не перегружает (с точки зрения дизайна языка)?
UPDATE: Да, я прочитал спецификацию языка С# 7.5.13, и я знаю, что делает язык. Я пытаюсь понять, почему.