[英]Immutable structure in c#
我有如下代码:
struct Name
{
private int age;
public int Age
{
get
{
return age;
}
set
{
age = Age;
}
}
public Name(int a)
{
age = a;
}
};
class Program
{
static void Main(string[] args)
{
Name myName = new Name(27);
Console.WriteLine(myName.Age);
myName.Age = 30;
Console.WriteLine(myName.Age);
}
}
如您所见,我正在尝试使用我的属性更改 Age 的值。 但是当我创建结构名称的 object 时,我得到的值仍然相同。 我知道结构在 C# 中是不可变的,但我认为我可以更改其中的字段。 我很困扰。 有人可以解释一下发生了什么吗?
C# 中的结构默认情况下不是不可变的。 要将结构标记为不可变,您应该在结构上使用readonly 修饰符。 您的属性未更新的原因是您的语法错误。 您应该使用value关键字来取消引用提供给 setter 的值。
public int Age
{
get
{
return age;
}
set
{
age = value; // <-- here
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.