您可以在类型上而不是在类型的实例上拥有扩展方法吗?

发布于 2024-08-30 04:02:12 字数 397 浏览 8 评论 0原文

我可以有一个像这样的扩展方法:

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

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

DateTime d = DateTime.GetRandomDate();

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

public static DateTime GetRandomDate(this System.DateTime dt)

只会在上面的第一个示例中添加 GetRandomDate(),而不是第二个示例。有没有办法实现所需的行为?

I can have an extension method like this:

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

GetRandomDate is my extension method. However the above doesn't make much sense. What would be better is:

DateTime d = DateTime.GetRandomDate();

However, I don't know how to do this. An extension method created as:

public static DateTime GetRandomDate(this System.DateTime dt)

will only add the GetRandomDate() in the first example above, not the second one. Is there a way to achieve the desired behaviour?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

最丧也最甜 2024-09-06 04:02:12

不 - 不可能

你需要访问你自己的静态类上的方法......

Nope - not possible

You'll need to access the method on your own static class...

海之角 2024-09-06 04:02:12

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

好的,您需要使用诸如 DateTimeHelper.GetRandomDate() 之类的东西,而不是 DateTime.GetRandomDate()

Why would you want to? If you want to call a static method, why not call it directly?

OK, you will need to use something like DateTimeHelper.GetRandomDate() instead of DateTime.GetRandomDate().

丶视觉 2024-09-06 04:02:12

只是把它扔在那里,但是您可以创建一个日期时间的部分静态类并在其上抛出扩展方法吗?

Just throwing this out there, but could you create a partial static class of datetime and throw the extension method on that?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文