FROM P114
先前已经了解到,有两种函数成员带get和set访问器:属性和索引器。
默认情况下,成员的两个访问器和成员自身有相同的访问级别。e.g.一个属性有public访问级别,则其两个访问器都有同样的访问级别,对索引也一样。
不过,自己可以为访问器分配不同的访问级别。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace review 8 { 9 class class1 10 { 11 public string Name { get; private set;} 12 public class1(string name) 13 { 14 Name = name; 15 } 16 } 17 class Program 18 { 19 static void Main(string[] args) 20 { 21 class1 z = new class1("ohoh"); 22 Console.WriteLine(z.Name); 23 //z.Name = "oho1";//error! 属性或索引器"class1.Name"不能用在此上下文中,因为set访问器不可访问 24 Console.Read(); 25 } 26 } 27 }
输出为:
ohoh
访问器的访问修饰符有几个限制。最重要的如下:
□仅当成员(属性or索引器)既有get访问器也有set访问器时,其访问器才能有访问修饰符
□虽然两个访问器都必须出现,但它们中只能有一个有访问修饰符
□访问器的访问修饰符必须比成员的访问级别有更严格的限制性。