你可以在类型而不是类型的实例上使用扩展方法吗?

时间:2010-04-23 08:33:57

标签: c# extension-methods

我可以使用这样的扩展方法:

DateTime d = new DateTime();
d = d.GetRandomDate();

GetRandomDate是我的扩展方法。但是上面没有多大意义。更好的是:

DateTime d = DateTime.GetRandomDate();

但是,我不知道该怎么做。创建的扩展方法为:

public static DateTime GetRandomDate(this System.DateTime dt)

只会在上面的第一个示例中添加GetRandomDate(),而不是第二个示例。有没有办法达到预期的行为?

3 个答案:

答案 0 :(得分:3)

不 - 不可能

您需要在自己的静态类上访问该方法...

答案 1 :(得分:2)

你为什么要这样?如果你想调用静态方法,为什么不直接调用它?

好的,您需要使用DateTimeHelper.GetRandomDate()而不是DateTime.GetRandomDate()

答案 2 :(得分:0)

只是抛弃它,但是你可以创建一个部分静态类的datetime并抛出扩展方法吗?