1

我有一个方法:

public HttpRequestMessage CreateRequest<T>(T genericObject = default(T))
{
    ...
    if (!Equals(genericObject, default(T)))
    ...
}

我可以称之为:

var request = CreateRequest<int>();

鉴于我实际上并没有使用默认类型(我希望它默认设置为 null),当我调用该方法时,如何停止将泛型类型定义为 int(或任何其他类型)?

编辑 重点是,我通常确实需要指定类型并使用参数。但是有时我不需要使用参数,我希望将其设置为 Null 或 Zero,而不是在上面的示例中编写像“int”这样的随机类型

4

2 回答 2

1

你不能,因为是你方法的签名。

您可以创建另一个没有任何通用参数的方法,因此您可以像这样调用它:

var request = CreateRequest();
于 2013-07-18T15:18:35.410 回答
0

我不认为你可以。对于泛型函数,您要么必须指定泛型参数,要么必须传递它可以从中推断出泛型参数的东西。

要解决它,您可以编写一个非通用包装器。

于 2013-07-18T15:17:41.343 回答