c# - 约会时间? AddDays 扩展方法

标签 c# datetime extension-methods

我想编写一个扩展方法,将一天添加到 Nullable DateTime,但修改日期本身。

我想按如下方式使用它:

someDate.AddOneDay();

这直接改变了 someDate 的值。

我最初写的代码是:

public static DateTime? AddOneDay(this DateTime? date)
{
    if (date.HasValue)
    {
        date.Value = date.Value.AddDays(1);
    }

    return null;
}   

但这不起作用,因为引用已更改,因此以这种方式调用它 不会改变 someDate 的值。

有没有办法实现这一点并避免像这样的代码:

someDate = someDate.AddOneDay();

我也在考虑 DateTime 属性的一些 setter ,但它们没有任何......

public int Day { get; }
public int Month { get; }
public int Year { get; }

最佳答案

你不能 DateTime 是不可变的,应该保持这种状态。

只是做:

someDate = someDate.AddOneDay();

如果您想更具体一些,您可以将函数重命名为:

DateTime? someDate = someDate.AddOneDayOrDefault();

关于c# - 约会时间? AddDays 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28020719/

相关文章:

c# - C# 中的多个重载扩展方法

c# - 在不使用静态类的情况下调用类的扩展方法,而是使用反射使用类 iteslf

c# - 读取 SEGY 文件中的 400 字节二进制文件头

c# - 按钮内的图像和标签在单击事件 wpf 上更新

c# - 保存后在我的 XML 文件的开头获取 ""()

php - 从开始日期到当前日期的间隔

c# - 使用 C# 向 WinDbg 远程发送命令

java - 将字符串转换为时间,更改时区,然后返回字符串

java - 日期值不正确

c# - 在 C# 中为泛型类型扩展返回 null