我有一个方法:
public HttpRequestMessage CreateRequest<T>(T genericObject = default(T))
{
...
if (!Equals(genericObject, default(T)))
...
}
我可以称之为:
var request = CreateRequest<int>();
因为我实际上并没有使用默认类型(我希望它默认设置为null),当我调用时,如何停止将泛型类型定义为int(或任何其他类型)方法?
修改 关键是,我通常需要指定一个类型并使用参数。但是有时我不需要使用参数,我希望它被设置为Null或Zero,而不是在上面的例子中写一个像'int'这样的随机类型
答案 0 :(得分:1)
你不能,因为 是你的方法的签名。
您可以创建另一个没有任何通用参数的方法,因此您可以将其称为:
var request = CreateRequest();
答案 1 :(得分:0)
我认为你不能。对于泛型函数,您必须指定泛型参数,或者必须传递可以从中推断泛型参数的内容。
要绕过它,你可以写一个非通用的包装器。