为什么这个c#代码只有get而没有set的,set不是还得什么什么=value呢吗

2024-11-25 02:36:19
推荐回答(4个)
回答1:

因为这个代码并未定义 set,所以这个属性乃只读属性,即只可以获取该属性的值,而不可以赋值。
同理,也可以为一个属性,只定义set,而不定义get,这样就成了只写属性,即只可以赋值,而不可以读取。
更多情况下,get/set 也可以为其指定修饰符(public/private/internal)等,对可访问性进行限制。
set 代码段,形同于如下的伪代码:
int a;
public int A;
{
set{ a = value;}
}

//伪代码
public void SetA( int value )
{
a = vlaue;
}

只不过调用方式,是对属性直接赋值,而不是调用方法。同时,value 这个参数名称,是所有属性赋值的内置参数,无法进行修改。

回答2:

这个属性是只读属性,不能写入值的。

回答3:

何必呢?现在这个版本都有自动属性了,定义的时候直接public string Message{get;set;}

回答4:

get 的意思这个字段只能只读,不能赋值