【发布时间】:2017-09-04 04:07:07
【问题描述】:
我有以下方法:
void Test<T>(T Result)
我需要实现这样的东西:
if Result is null, or T is a bool and that bool is false
我试图做类似的事情
if (typeof(T) == typeof(bool)
{
if ((bool)Result == false) // doesn't work
if (Result as bool == false) // doesn't work
如何在不创建两个方法的情况下实现这一点?
【问题讨论】:
-
您所要求的称为模板专业化。 C# 中与此最接近的等价物是重载,请参阅我提出的重复答案。
-
为您的方法
Test<T>(T Result) where T : IComparable添加一个约束使其可比较。Result.CompareTo(true)==0 -
if (someBool == false)无论如何都没有用。只需使用if(!someBool) -
@oerkelens 我想你的意思是
if(!someBool)不是更易读。 -
@L.B 当然!
标签: c#