C#中的set和get

C#中有一种独有的定义,其形式类似于方法,却又没有小括号。如下第4行代码

 1 class Program
 2     {
 3         String name;
 4         public String Name
 5         {
 6             get
 7             {
 8                 return name;
 9             }
10             set
11             {
12                 name = value;
13             }
14         }
15    }

从第4行到14行都是get和set相关代码,需要注意第3行的name和第4行中的Name名字虽然不一样,但却不影响结果。get返回name的值,set中有一个关键字value,这里的value可以理解为具体调用时的值,如下面代码第6行的“cyb”就是一个value,这样就在调用时把具体的值赋给了name。

get和set不会出现在其他类的调用语句中,是在调用时默认发挥作用。

 1 static  void Main(string[] args)
 2         {
 3             Program p = new Program();
 4             p.name = "cyb"; //使用了set
 5             Console.WriteLine(p.name);
 6             if(p.name=="cyb")//使用了get
 7             {
 8                 Console.WriteLine(p.name);
 9             }else
10             {
11                 Console.WriteLine("用户名不匹配");
12             }
13             Console.ReadKey();
14         }

程序第4行和第6行分别使用了set和get。

测试结果如下

C#中的set和get

 

C#中的set和get

上一篇:[EXP]CVE-2019-0803 Win32k漏洞提权工具


下一篇:如何设计出和 ASP.NET Core 中 Middleware 一样的 API 方法?