当所需参数为null时,如何不在泛型方法中指定类型参数
本文关键字:泛型方法 何不 类型参数 参数 null | 更新日期: 2023-09-27 18:23:52
我有一个方法:
public HttpRequestMessage CreateRequest<T>(T genericObject = default(T))
{
...
if (!Equals(genericObject, default(T)))
...
}
我可以称之为:
var request = CreateRequest<int>();
鉴于我实际上并没有使用默认类型(我希望它默认设置为null),当我调用该方法时,我如何才能停止将泛型类型定义为int(或任何其他类型)?
编辑重点是,我通常需要指定一个类型并使用参数。然而,有时我不需要使用参数,我希望它设置为Null或Zero,而不是像上面示例中的"int"那样编写随机类型
不能,因为是方法的签名。
您可以创建另一个方法,该方法没有任何通用参数,因此您可以像这样调用它:
var request = CreateRequest();
我认为你做不到。对于泛型函数,您必须指定泛型参数,或者必须传递一些可以推断泛型参数的内容。
为了解决这个问题,你可以编写一个非通用的包装器。