C# 特性之属性

类相关概念

C#中定义一个类的方法与JAVA一致,通过class关键字来定义。

字段

定义一个字段需要3个部分,访问修饰符,字段类型,以及字段名称。

public class Author{
	private string name;	//private static string name
	private int age;	//private const int age
	private bool isAlive;	//private readonly bool isAlive
}

实例字段可以用readonly,const来修饰。readonly表示字段只读,const表示字段不可变。字段前用static修饰表示声明一个静态字段。

  • readonly:被readonly修饰的字段可以利用构造函数进行初始化。
  • const:被const修饰的字段必须在定义字段时直接初始化。通过new Author().age访问。
  • static:静态成员只会被创建一次。通过Author.name进行访问。

属性

基于面向对象的编程思想,属性是C#对字段的扩展,目的是更方便的对字段进行操作。
不使用属性时:

public class Author{

	//字段必须为私有类型
	private string name;

	//公有类型的getter方法
	public string getName(){
		return name;
	}

	//公有类型的setter方法
	public void setName(string value){
		name = value;
	}	
}

使用属性时:

public class Author{

	//字段必须为私有类型,字段名小写
	private string name;

	//公有类型的getter方法,属性名大写
	public string Name{
		//get访问器
		get{
			return name;
		}
		//set访问器, value为隐式参数
		set{
			name = value;
		}
	}
}

属性的类型必须与字段的类型一致,只读属性可以直接忽略set访问器编写或者用private关键字修饰set访问器,只写属性只能采用private关键字修饰get访问器,不可忽略get访问器的编写。访问器中可以加入逻辑代码。
C#3.0对属性进行优化,可以用如下的方式定义属性:

public class Author{
	//public来修饰属性,属性名称大写
	public string Name{get; set;}
	
	//只读属性可以采用以下两种方式
	public string Name{get; private set;}
	public string Name{get;}

	//只写属性
	public string Name{private get; set;}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值