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。
测试结果如下