求解!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!
属性:public int age{get;set;}
public int age{} 这种编译不通过,get和set至少有一个,分别代表,取值和赋值
变量:public int age;
一个属性,就是用来给内部或者外部访问的,读写权限总要有一个,get,set 就是让你知道属性是否可读可写。
get;set;就像2楼说的,对变量的赋值取值操作,还可以设置他们的读写权限,public virtual string Styles { get; protected set; }相对与只读的效果
public string Name;//一般属性,可写、可读 Public string Email{get;set;}//可写、可读 Public string Age{get;}//只读 public string Height{set;}//只写
首先,这是一堆属性,Name属性在C#里面可以称之为字段,只要在同一个命名空间下面就可以可读可写。
如Email属性是也可度可写的,那么这两个区别在哪呢,当然在你的业务逻辑上,如果我想对Email的格式做出校验(当你设置邮箱格式的时候就可以校验),那么Email就可以,Name属性这种写法就不能加入逻辑代码。而且,Name属性编译之后,就是一个字段Name,但是Emai{get;set;}属性编译之后就是两个函数:
//字段 private string email; //读取邮箱 public string GetEmail(){ return this.email; } //设置邮箱 public void SetEmail(string value){ this.email=value; }
那么Age{get;}这个属性是只读的,那么在编译之后会变成一个函数:
private string age; public string GetAge(){ return this.age; }
同样的,可以得出 Height{set;}会编译成一个函数:
private string height; public string SetHeight(string value){ this.height=value; }
一个public属性一定要有一个访问权限get或者set,如果设置成private也就不需要设置了