review——C# (4)访问器的访问修饰符

时间:2020-12-26 02:55:46

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访问器时,其访问器才能有访问修饰符

□虽然两个访问器都必须出现,但它们中只能有一个有访问修饰符

□访问器的访问修饰符必须比成员的访问级别有更严格的限制性。

review——C# (4)访问器的访问修饰符