C#-之属性(1)
1. 属性定义方式与字段类似,但还包括Set和Get两个访问器,其格式如下:
public/private <type> Name
{
get
{
return variable;
}
set
{
赋值语句;
}
}
属性可以使用virtual ,override,abstract关键字,访问器也可以由自己的访问属性;
2. 私有字段,一般使用属性来对其赋值;属性是访问对象状态的首选,因为他们禁止外部代码访问对象内部数据存储机制的实现,一般以标准方式定义属性,即通过一个公共属性来直接访问一个私有字段。
private int myInt;
public int MyInt
{
get
{
return myInt;
}
set
{
myInt = value;
}
}
属性成员定义,可以使用VS 单击字段选择重构;
3. 自动属性
public int MyInt {get; set; }
这个自动属性没有理解!!!
4.一般属性与自动属性区别
(1)自动实现的属性必须同时声明 get和 set 访问器。创建 readonly自动实现属性时,需要将set访问器设置为private 。
(2)自动实现的属性上可以使用特性,不能用在支持后备字段上。如果属性的后备字段上使用特性,则应该只创建常规属性。
(3)自动实现属性get,和set中不能包含特殊的逻辑处理。与字段类似,但不同于字段。与字段不同,属性不作为变量来分类,不能将属性作为 ref参数或 out参数传递。
5. https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/properties,有详细介绍。