为什么构造函数不是设置参数?

时间:2014-10-06 22:09:50

标签: c# parameters constructor field

我正在缩小专业数据解析和管理类的完成,并遇到了一个我似乎无法弄清楚的问题。

我有一个名为RecordDisposal的活动类和一个名为DisposalRecord的数据类(对于糟糕的命名感到抱歉;我无法想出任何其他不会将此事与其他事情混淆的事情)。

所以我设置了一些基本的测试,事情并没有真正解决(见图)。在断点处,字段UnparsedRetentionCode应该已设置为参数值RetentionCode(请参见断点上方的行),在本例中为1,但不是(请参阅本地窗口)在底部)。

我做错了什么?

enter image description here

2 个答案:

答案 0 :(得分:6)

在观察窗口中,UnparsedRetentionCode为null,因为您的setter正在有效地执行_fullRetentionCode = _fullRetentionCode(在创建对象时为null)。

应该是:

private set
{
    _fullRetentionCode = value;
}

MSDN reference on c# properties

答案 1 :(得分:1)

你的二传手正在设置支持区域;到支持字段的值(通过属性getter)。所以它总是空的。

相反:

public string UnparsedRetentionCode
{
    get { return _fullRetentionCode; }
    private set { _fullRetentionCode = value; }
}

所以这项任务确实有效;