C# 更改dateTime的get和set属性

C# 更改dateTime的get和set属性,c#,properties,C#,Properties,DateRange来自客户端,时间不同,我想 设置从“开始”到一天开始的时间和从“结束”到一天结束的时间。 您需要创建一个变量来保存该值: public class DateRange { public DateTime From { set { value = value.Date; } get { return this.From; } } public DateTime To {get { return this.From.Date.AddDays(1).AddTicks(

DateRange来自客户端,时间不同,我想
设置从“开始”到一天开始的时间和从“结束”到一天结束的时间

。 您需要创建一个变量来保存该值:

public class DateRange
{
    public DateTime From { set { value = value.Date; } get { return this.From; } }
    public DateTime To {get { return this.From.Date.AddDays(1).AddTicks(-1); }}
}
有一件事需要注意,就是从中返回的getter,它会再次调用get,这种情况会一直发生,直到出现StackOverflowException,程序崩溃

在关于的代码中,我创建了一个名为_的变量,从中保存实际值


表示私有变量的uu约定不是普遍接受的。你应该找到一套你喜欢的约定,并在整个项目中始终如一地坚持下去。

首先,From的getter看起来是循环的。它应该返回一个支持的私有变量,如_from。需要了解您正在尝试执行的操作的更多详细信息。若要开始一天,请使用截断小时分钟秒的Date属性。然后,一天的结束通常是第二天的开始(使用少于),因此要开始第二天,请添加一个day to Date属性。@jdweng是的,我现在这样做了,但我希望DateRange自己来完成,而不是每次都通过我硬编码此解决方案。不幸的是,虽然要求很不明确,不太可能有人能够帮助您。如果您只需要检查某个日期是否在某一天,您可以比较这两个属性的
date
属性,而不是像
date1.date==date2.date
这样的范围。我希望
DateRange
类允许From小于或等于to的任何有效范围,因此至少您应该重新考虑名称,例如
ExactlyOneDayRange
或类似的名称。
public class DateRange
{
    public DateRange(DateTime from){
        this._from = from.Date;
    }
    private DateTime _from;
    public DateTime From { set { _from = value.Date; } get { return this._from; } }
    public DateTime To {get { return this._from.Date.AddDays(1).AddTicks(-1); }}
}