一个主机可以建设多少个网站,专业建站公司建站系统,互动性的网站,wordpress 360加速在C#中#xff0c;访问修饰符是使用频率很高的一组关键字#xff0c;一共四个单词六个组合#xff1a;public,internal,protected internal,protected,private protected,private#xff0c;如果你对这些关键字非常清楚#xff0c;请跳过#xff0c;节省时间#xff1b;… 在C#中访问修饰符是使用频率很高的一组关键字一共四个单词六个组合public,internal,protected internal,protected,private protected,private如果你对这些关键字非常清楚请跳过节省时间如果你在编程中一般都使用public和private那不防花点时间来明确一下方便设计功能模块时准备使用。如果简单的分层.net程序集(dll,exe)的话如上图修饰符用在自定义类型前和类内部的成员前(方法属性字段等)自定义类型只能使用internal和public类内部成员七种修饰符都可以使用的。接下来唠叨一下七种使用场景public:这个什么场景都可以使用internal:只能在当前的应用程序集内使用protected:只能在子类中使用父类中的protected成员private:只能在当前类中使用private成员protected internal:在当前程序集内使用和不在一个程序集内的子类中使用private protected:只能在当前程序集内的子类中使用准确的使用访问修饰符可以很好的封装对象的功能该对外暴露的暴露该开放的开放开放的多彻底都可以控制。例如public class Program
{static void Main(string[] args)
{var myList new MyListint();myList.Add(1);myList.Add(2);myList.Add(3);myList.Add(4);myList.Add(5);foreach (var o in myList){Console.WriteLine(o);}}
}public class MyListT : IEnumerable
{protected T[] array;public MyList()
{array new T[4];}public int Count{get;private set;} 0;public void Add(T t)
{if (array.Length Count){array CreateNewArray(array, Count * 2);}array[Count] t;Count;}public IEnumerator GetEnumerator()
{for (int i 0; i Count; i){yield return array[i];}}private T[] CreateNewArray(T[] oldArray, int length){var newArray new T[length];oldArray.CopyTo(newArray, 0);return newArray;}
}
其中CreateNewArray方法只在内部使用所以是PrivateAdd方法是供外部添加元素的publicCount属性get是对外提供元素的个数但set是私有的不能在外部对它赋值字段array按理该是private这里我想让子类能访问到以便提供更大的访问权限官方的ListT是private的子类中是看不见这个数据的。这个例子就能很好的说明准确的使用访问修饰符可以很好的封装对象的功能该对外暴露的暴露该开放的开放。另一方面规(节)范(操)也很重要