数据字段或其值无法修改的局部变量?

时间:2013-09-23 16:14:02

标签: c#

嘿伙计们我是c#的新手。我正在阅读这本书,这填补空白说__是数据字段或局部变量,其值无法修改?有人能告诉我答案吗?谢谢。 ps:总新手我搜索了youtube,但我在代码中搞砸了。 感谢。

2 个答案:

答案 0 :(得分:3)

完整的答案有两个:

1)对于原始类型(例如intdoublestring等),可以使用const修饰符,这实际上意味着值无法通过任何方式更改此类型的变量

2)对于非原始类型,存在readonly修饰符。请注意,您不能将const应用于非基本类型。它对于引用和值类型意味着相同的东西:  对象构造后,无法更改此变量的引用。 但是,它有不同的后果:

2.1)readonly对象本身可以通过它的公共API进行更改。例如:

class Foo{
  private readonly List<int> list;
  public Foo(){ list = new List<int>();}

  public Test()
  {
    list = new List<int>(); // invalid; your reference is readonly
    list.add(5);//works, you are changing the object, but not touching it's reference
  }
}

2.2)对于值类型readonly,在使用readonly修饰符时必须小心 - 它可能会导致可变结构的细微错误。例如,请参阅C#: Why do mutations on readonly structs not break?。但是,如果您的struct是不可变的,那么您将有效地获得const关键字的语义

答案 1 :(得分:2)

答案是Const。 这是链接Read this