【C#学习】属性/属性访问函数
来源:互联网 发布:小学英语听力软件 编辑:程序博客网 时间:2024/05/22 09:02
为了实现对数据的良好封装,C#为类提供了属性访问函数(简称属性,Property)。属性用于控制对字段的访问。属性包含 set 访问函数和 get 访问函数,分别用于写字段和读字段。
class A { private string name; // 被控制字段 public string Name // 属性 { get { return name; } set { name = value; } // value 为隐式参数,由C#提供,表示等于号的右值。 } } public static void Main(string[] args) { A a = new A(); a.Name = "a"; Console.Write(a.Name); }如果属性只有 get 访问函数,则此属性只读,只能作为右值;如果只有 set 方法,则此属性只写,只能作为左值。需要注意的是,如果属性封装的字段本身也是一个复合类型,则只读属性无法限制对这个复合类型对象的成员的修改,因为get会返回这个符合对象的引用,而引用是可能可以修改自己的成员的,但是直接修改引用是不行的,依旧还是只能做右值。比如:
public class Address { public string province; public string city; } public class Person { public Person(string province, string city) { addr.province = province; addr.city = city; } private Address addr; public Address Addr { get { return addr; } } } public static void Main(string[] args) { Person p = new Person("北京", "东城"); p.Addr.province = "上海"; // 合法 // p.Addr = new Address("上海", "浦东"); // 非法 }
自动属性
C# 3.0 开始提供了“自动属性” 的编程方式。允许省去 get 和 set访问函数的函数体以及被封装的字段,取代简单的 get , set 函数。
public class A { public string Name { set;get; } } public static void Main(string[] args) { A a = new A(); a.Name = "name of a"; Console.Write(a.Name); }需要注意的是,要使用自动属性,必须要求属性是可读写的,也就是必须同时有 set 和 get 访问函数。
阅读全文
0 0
- 【C#学习】属性/属性访问函数
- C#学习 属性的访问器
- C#属性访问器
- 属性访问函数
- C#属性访问器 get set,和java比较学习
- C#反射的学习(二)--访问字段、属性、方法
- C# 使用反射访问属性
- C#学习笔记-属性
- C#属性学习日志
- JavaScript学习(4.2):函数定义表达式和属性访问表达式
- C# 类-->函数成员-->属性
- C#的属性访问器[转的]
- c# 属性的访问修饰符
- 浅谈C#类成员的访问属性
- C#学习笔记9-属性
- 学习笔记之C#属性
- c#学习5(属性)
- C#学习日记27----属性
- git的使用
- Django(一)
- 成功的背后!(给所有IT人)
- 设计模式-备忘录模式
- C++ B树
- 【C#学习】属性/属性访问函数
- 利用MyCAT实现数据分片
- logstash 执行grok超时,cpu使用率很高
- 水晶头接法
- iOS Quartz绘图
- Qt在Windows下的三种编程环境搭建
- 【javascript知识进阶】this和闭包
- HDU 1238 Substrings(KMP+暴力枚举)
- CAS单点登录方案配置