У меня есть общий метод, который я хотел бы передать либо ссылочным типом, либо bool.Тестирование значений bool с общим T
private void Test<T>(T value)
{
if(typeof(T)) == typeof(bool))
{
if(value == false)
// do something
else if (value == null)
// do something else
}
}
, но я получаю эту ошибку компиляции времени «Оператор ==' cannot be applied to operands of type
T 'и` Ьоо». Есть ли простое решение для этого (желательно без использования Reflection)?
Обновление: Если оно заключено в цикл foreach, будет ли неявный листинг? Я все равно получаю ту же ошибку компиляции.
private void Test<T>(T[] values)
{
foreach(T value in values)
{
if(typeof(T)) == typeof(bool))
{
if(value == false)
// do something
}
else if (value == null)
// do something else
}
}
T является аргументом типа и может быть классом или структурой. Таким образом, com piler не позволит вам выполнять действия, которые не существуют в классах и структурах. (Боковое примечание: 'значение == false' ->'! Value') –
Я был бы более склонен спрашивать, зачем вам это нужно? Что-то здесь не так. –