洪梅做网站,监控摄像头做直播网站,一个人做导购网站,网站优化排名公司哪家好数据成员 ≠ 属性 成员属性
属性可以理解为一种封装 成员属性概念#xff1a;一般是用来保护成员变量的 成员属性的使用和变量一样#xff0c;外部用对象点出 get中需要return内容 #xff1b; set中用value表示传入的内容 get和set语句块中可以加逻辑处理。应用#…数据成员 ≠ 属性 成员属性
属性可以理解为一种封装 成员属性概念一般是用来保护成员变量的 成员属性的使用和变量一样外部用对象点出 get中需要return内容 set中用value表示传入的内容 get和set语句块中可以加逻辑处理。应用加密解密 get和set可以加访问修饰符但是要按照一定的规则进行添加 get和set可以只有一个 自动属性是属性语句块中只有get和set一 般用于 外部能得不能改
一属性的语法规则
1.1 使用常规方法对字段进行封装
class Student
{private int age;public void SetAge(int age) { this.ageage;}public int GetAge(){ return age;}
}
-----------------------
Main()
{Student a1new Student();a1.SetAge(17);Console.WriteLine(a1.GetAge());
}1.2 使用属性对字段进行封装
属性命名一般使用帕斯卡命名(首字母大写)
1.2.1 属性的完整写法
public class Person
{private string _name;public string Name{get { return _name; }set { _name value; }}
}
---------
//属性的使用
void Main(){Person p new Person();p.Name小白;//调用set逻辑Console.WriteLine(p.Name);//调用get逻辑
} 一般需要配置一个私有的字段并在属性的 get 和 set 访问器中添加自定义逻辑
1.2.2 自动属性
public class Person
{public string Name { get; set; }
}
系统会自动生成一个私有的返回字段
1.2.3 只读属性
public class Person
{public string Name { get; private set; }
} 只能被读取不能被外部代码修改
1.2.4 表达式属性
C# 6 引入了表达式成员允许使用一行代码定义属性。
public class Person
{public string Name John;
}1.2.5 有逻辑的属性
可以在getset语句块中增加逻辑如验证、记录、计算等
public class Person
{private int _age;public int Age{get { return _age; }set{if (value 0)return -1;_age value;}}
}
二属性的访问权限
不能同时让set和get的访问修饰符与外部的访问修饰符不同 。
不能外部private而内部是public