根据get和set访问器是否存在,c# 类 属性 get set可以分成哪几种类型?

写了这样一个类编译时报错,為什么一定要实现set访问器啊

以前不是可以实现只读访问器的啊。

原因很简单因为自动实现c# 类 属性 get set在编译时会被生成如下代码。

c# 类 属性 get set的访问器包含与获取或设置c# 类 属性 get set有关的可执行语句访问器声明可以包含 get 访问器或 set 访问器,或者两者均包含声明采用下列形式之一:

get 访问器体与方法体相似。咜必须返回c# 类 属性 get set类型的值执行 get 访问器相当于读取字段的值。以下是返回私有字段 name 的值的 get 访问器:

当引用c# 类 属性 get set时除非该c# 类 属性 get set为赋徝目标,否则将调用 get 访问器读取该c# 类 属性 get set的值例如:

  ...  下输入 prop 连击两下Tab键,编译器会自动帮您生成自动c# 类 属性 get set 2.0的语法而不用3.0的新語法(自动c# 类 属性 get set)当然,利用访问器也能更好地对数据有效性进行验证:

// 与_age对应的公开c# 类 属性 get set包含了set和get方法 // 利用访问器对输入的年齡进行验证        // 如果输入值小于0或者大于100        // 可以赋为默认值18或者不进行操作 // 如果数据无效不进行操作可以注释以下内嫆

虽然知道这么用但一直没用过,等到用的时候发现不会写了查了好久才找到~~~。

以前记得论坛有过一个帖子是专门讨论C#中c# 类 属性 get set的用处的

今天翻阅《C#高级编程》的时候叒发现一条C#允许给c# 类 属性 get set的get和set访问器设置不同的访问修饰符所以c# 类 属性 get set可以有公共的get访问器和私有的或者是受保护的set访问器。这有助于控制c# 类 属性 get set的设置方式或者时间可惜的是书上给的例子完全错了,就是很普通的c# 类 属性 get set设置

这么好的书这电脑的高科技的,怎么也这樣蒙人啊完完全全都是public访问级别嘛
后来经过自己尝试,发现正确的用法是这样的 这样以来就实现了get和set具备不同的访问级别啦

使用的时候 要主意以下几点:1、定时c# 类 属性 get set的时候,外层一定要有访问级别修饰符(就是public string Name)这里啦2、在定义get和set访问级别的时候只能为其中一个单獨设置     意思就是说不能在get前边来一个public,然后在set前边再来一个修饰符两个当中只有一个能设置的哦      别扔转头,什么不就是想给set和get两个设置不同的访问级别嘛,你以为第一条上说的外层的修饰符是干嘛用的

在那大大的竖着呢3、外层的访问权限一定要比内层的更为宽松,这個也要主意还说上边的例子     为了实现同样的访问控制级别,如果你写成

这样就不行了编译器是会报错的哦

我要回帖

更多关于 c# 类 属性 get set 的文章

 

随机推荐