编辑
2026-06-18
编程语言
00

目录

成员属性
基本概念:
基本语法:
成员属性的使用:
get,set前可以加访问修饰符:
get和setk可以只加一个:
自动属性:

成员属性

基本概念:

前情回顾:

image.png 成员属性: image.png

基本语法:

访问修饰符 属性类型 属性名 { get{}; set{}; }

举个例子:

class Person { private int age; private string name; private bool sex;//三个我都用private修饰,外部不能访问. public string Name { get { //意味着这个属性可以获取的内容. //可以在返回之前添加一些逻辑规则. return name; //通过属性Name,我就可以访问成员变量name, } set { //可以在设置之前添加一些逻辑规则. name = value;//value关键字表示外部传入的值 } } }

成员属性的使用:

image.png

因为我让属性前面的修饰符是,private,所以外面没法访问, 但却可以通过Name属性,来访问变量name.

static void Main(string[] args) { Person p = new Person(); p.Name = "leemoon";//这句是在执行成员属性Name里面的set语句块 Console.WriteLine(p.Name);//这句则是在使用get语句块 }

除此之外还能用来加密解密

class Person { private int money; private string name; private bool sex;//三个我都用private修饰,外部不能访问. public int Money { get { //解密 return money-5; } set { //加密 money = value+5; } } } internal class Program { static void Main(string[] args) { Person p = new Person(); p.Money = 1000;//我存进去的是1000,实际在堆里存的是1005 Console.WriteLine(p.Money);//解密出来之后又是1000. } }

get,set前可以加访问修饰符:

image.png

public int Money { get { return money-5; } set { money = value+5; }

get,set默认前面的修饰符是public int Money 的public一样的.

当然也可以一个是public,一个是private,

当声明属性的访问修饰符是private也就是private int Money , get和set的的访问修饰符就不能是public,因为public是比private更高级的.

里面的权限一定要低于外面的权限.

但不能两个都是private,因为这样public int Money的public就没用了

get和setk可以只加一个:

image.png

class Person { private int money; private string name; private bool sex; public bool Sex { get { return sex; } } }

在调用我们一般只希望能得到这个数据,而不让去改他,所以只用get,就像这样

static void Main(string[] args) { Person p = new Person(); Console.WriteLine(p.Sex); }

就可以保护成员变量.

当然我也可以只改他

class Person { private int money; private string name; private bool sex; public bool Sex { set { sex = value; } } }

在调用就:

static void Main(string[] args) { Person p = new Person(); value = false; }但一般很少会,去改,而不得到它

自动属性:

image.png

class Person { private int money; private string name; private bool sex; public int Hight { get; set; } }

get和set没有任何的语句块,你可以把Hight看成一个特殊的成员变量,

用属性替代成员变量,起到能得不能改或者能改不能得,就像这样:

public int Hight { get; private set; } static void Main(string[] args) { Person p = new Person(); Console.WriteLine(p.Hight); }

本文作者:Leemoon

本文链接:

版权声明:leemoon