属性为C#提供的方便读取和修改字段的格式
属性为C#提供的方便读取和修改字段的格式
属性
public 类型 变量成员
{
get{....}
set{...}
}
为什么我的属性不能用,属性的默认值是根据函数定义的,函数是public,属性就是public,不过也可以在属性前单独修改
属性与成员变量不是相同的含义、
属性的使用与 公开的成员变量的使用相同,直接赋值 或直接取值
不是函数的调用方式
属性的set / get 块都可以单独设置访问权限。
属性相当于set / get函数的简写。
//定义一个学生类
class Studens
{
private string name;
private int agv;
private string sex;
private int id;
//定义一个name的get和set方法
//一、
public void setName(string name)
{
this.name = name;
}
public string getName()
{
return name;
}
//简写版
public string Name
{
get
{
return name;
}
set //value 参数
{
name = value;
}
}
public void Show()
{
Console.WriteLine("name:"+name);
Console.WriteLine("agv:" + agv);
Console.WriteLine("sex:" + sex);
Console.WriteLine("id:" + id);
}
public Studens()
{
}
public Studens(string name, int agv, string sex, int id)
{
this.name = name;
this.agv = agv;
this.sex = sex;
this.id = id;
}
}
static void Main(string[] args)
{
//调用刚创建类的对象
Studens stu = new Studens();
//stu.Show();
stu.setName("张三");
Console.WriteLine(stu.getName());
stu.Name = "李四";
Console.WriteLine(stu.Name);
}
设置属性的只读或者只写 private string name; public string name{ get{ return name; } }
属性可以值只提供⼀个set块或者get块
2、属性的访问修饰符 public string name{ get{ return name; } private set{ name = value; } }
3、⾃动实现的属性 public int Age{get;set;} 编译器会⾃动创建private int age属性
属性
private int age;
public int Age//这个可以随意命名
{
get
{
}
set
{
}
}
外部引用属性来赋值或取值该属性所在类对应的变量
public void SetAge(int age){
}
类:属性
public int Age
{
get
{
}
set
{
}
}