.NET将类方法添加到系统类

时间:2013-01-17 18:54:07

标签: .net class datetime extension-methods

  

可能重复:
  Why aren’t C# static class extension methods supported?

一般问题:

在Objective-C中,我可以为任何(我认为?)类添加一个类别。在该类别中,我可以定义类或实例方法。

我知道如何在.NET中创建一个扩展方法,这将允许我实现与Objective-C类别实例方法相同的东西。

有没有办法制作一个类方法的扩展方法?

具体问题:

我创建了一个方法,它接受System.DateTime值并返回另一个System.DateTime值,该值表示在提供的值之前的月份的第一个月。我已将其转换为扩展方法,我将其称为:

Dim dt As DateTime = Now.FirstOfPriorMonth()

但是,我只在Now上调用此方法,因此我想制作一个类级别的扩展方法并假设Now。因此,我想呼吁以下内容:

Dim dt As DateTime = System.DateTime.FirstOfLastMonth()

这可能吗?我意识到我目前正在使用的解决方案很好,所以我真的更想知道什么是可能的,而不是试图“解决”我当前的问题。

1 个答案:

答案 0 :(得分:1)

我不会全力以赴地尝试扩展Microsoft的静态类:只需启动您自己的公共日期/时间实用程序类并使用它:

Dim dt As DateTime = YourCommonCode.DateTimeUtils.FirstOfLastMonth()