Здравствуйте, Аноним, Вы писали:
А>Как же люди код на C++ сопровождают?
Ответ в вопросе: они сопровождают код на C++, и там это норма, а в C# — нет. "Здесь так принято", ага.
Вам дали сопровождать код, написанный ТС'ом. Вы ничего не знаете о его привычке создавать оператор неявного преобразования к Boolean, спросить не можете, потому что он уволился за месяц до вашего найма, задокументировать свою привычку он забыл.
Глядя на этот фрагмент кода, какое предположение о типе переменной info вы сделаете?
var info = GetDetailInfo();
if (info) // вроде Boolean
{
Debug.WriteLine(info.ToString());
// ...
}
Теперь вы читаете код дальше и видите другую строчку:
ValidateInfo(info); // хм, нафига делать валидацию Boolean?
а потом еще:
if (info.IsValid()) // блин, у Boolean точно нет метода IsValid,
// может быть, это extension?
{
// ...
}
В итоге вы лезете в определение типа и обнаруживаете там оператор приведения к Boolean.
Да, есть IntelliSense, да есть явное указание типа переменной (что не всегда удобно и можно забыть, какой у нее тип, если метод достаточно длинный), но это все равно лишние телодвижения. Ради чего?
Еще 5 копеек о преобразовании типов. Кмк, идеологически, преобразование типов — это преобразование
данных, т.е. состояния объектов с использованием какой-то закономерности. В том, что делает ТС, преобразования состояния объекта нет, оно не анализируется, а в случае с null просто не может быть проанализировано. Т. е. отверткой забиваются гвозди.