【问题标题】:Why isn't the constructor setting a parameter?为什么构造函数不设置参数?
【发布时间】:2014-10-06 22:09:50
【问题描述】:

我正在完成一个专门的数据解析和管理课程,但遇到了一个我似乎无法弄清楚的问题。

我有一个名为 RecordDisposal 的活动类和一个名为 DisposalRecord 的数据类(抱歉命名不当;我想不出任何不会将此事与其他事物混淆的其他东西)。

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

我做错了什么?

【问题讨论】:

  • 请不要在帖子中使用代码图片。发布实际代码和您收到的完整错误。
  • 我同意他应该将他的代码放在文本中,但是本地调试窗口的图像很有用。
  • 您可能还想阅读和/或复习如何设置属性也看看如何实现自动属性

标签: c# parameters constructor field


【解决方案1】:

UnparsedRetentionCode 在监视窗口中为空,因为您的设置器正在有效地执行_fullRetentionCode = _fullRetentionCode(在对象创建时为空)。

应该是:

private set
{
    _fullRetentionCode = value;
}

MSDN reference on c# properties

【讨论】:

    【解决方案2】:

    您的 setter 正在设置支持字段;到支持字段的值(通过属性 getter)。所以它总是空的。

    改为:

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

    所以任务确实有效;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-17
      • 1970-01-01
      • 2011-02-25
      • 2012-03-09
      相关资源
      最近更新 更多