如何将计算的属性值添加到对象

本文关键字:添加 对象 属性 计算 | 更新日期: 2023-09-27 18:13:00

我正在将一些属性读回对象的构造函数中。其中一个属性是根据另一个属性计算出来的。

但是当我创建这个对象时,计算出的Implementation_End_String属性值总是null:

    private string implementationEndString;
    public string Implementation_End_String {
        get{
            return implementationEndString;
        }
        set  {
            implementationEndString= DataTimeExtensions.NullableDateTimeToString(Implementation_End);
        }
    }

问题:

如何将计算过的属性传递给对象构造函数?

这是一个关于函数和计算属性的要点:

    private string implementationEndString;
    public string Implementation_End_String {
        get{
            return implementationEndString;
        }
        set  {
            implementationEndString= DataTimeExtensions.NullableDateTimeToString(Implementation_End);
        }
    }

    public DateTime? Implementation_End { get; set; }

    public ReleaseStatus(DateTime? implementationEnd)
    {
        //value is assigned at runtime
        Implementation_End = changeRequestPlannedImplementationEnd;

    }

如何将计算的属性值添加到对象

不需要implementationEndString字段。只需使Implementation_End_String为只读属性,并在需要时从其他属性创建字符串:

public string Implementation_End_String
{
    get
    {
        return DataTimeExtensions.NullableDateTimeToString(Implementation_End);
    }
}

这样写

private string implementationEndString = DataTimeExtensions.NullableDateTimeToString(Implementation_End);
public string Implementation_End_String 
{
    get{ return implementationEndString; }
    set{ implementationEndString=value; }
    //if you don't want this property to be not changed, just remove the setter.
}

之后,当您获得属性值时,它将取DataTimeExtensions.NullableDateTimeToString(Implementation_End);的值。在您的代码中,当您试图获得实现返回null,因为implementationEndString是null