【问题标题】:C# create list within class propertiesC# 在类属性中创建列表
【发布时间】:2010-11-27 03:29:29
【问题描述】:

我在课堂上创建了以下内容

  private List<CreditCardTransaction> _ccTransactions = new List<CreditCardTransaction>();

  public List<CreditCardTransaction> ccTransactions
  {
      get { return _ccTransactions; }
      set { _ccTransactions = value; }
  }

在另一个公共函数中(在同一个类中),我尝试使用以下代码向列表中添加一个值:

  _ccTransactions.Add(new CreditCardTransaction(Convert.ToString(items[0]), Convert.ToString(items[1]), Convert.ToDouble(items[2]), DateTime.Parse(items[3])));

但是“_ccTransactions”下面的红色波浪线表示

错误 1 ​​非静态字段、方法或属性“CreditCardTransactionKeeper.CreditCardTransaction._ccTransactions”需要对象引用

当我在定义此列表的类的方法中时,向列表中添加新项目的正确方法是什么?

【问题讨论】:

  • @Philip Rieck 是绝对正确的。但是,为什么静态方法不能访问实例变量有意义吗?
  • @Esteban Araya:是的,这是有道理的。静态方法属于整个类,而不是它的特定实例,所以就静态方法而言,由于没有可访问的实例,因此不可能有任何实例变量。
  • @Anna Lear:我认为 Esteban 是在问原始发帖人。他需要了解行为背后的逻辑才能得到真正完整的答案。

标签: c# list scope


【解决方案1】:

您无法访问静态函数内的非静态字段 (_ccTransactions) - 由于错误,我假设您的其他函数是静态的。

您需要将_ccTransactions 设为静态,将调用函数设为非静态,或者获取对该类的对象的引用以访问_ccTransactions

【讨论】:

  • 感谢您的回答,我在声明前添加了关键字 static 并且成功了。
猜你喜欢
  • 2016-11-10
  • 2016-01-13
  • 1970-01-01
  • 2015-04-10
  • 2016-02-04
  • 2012-10-27
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多