为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符.

修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及protectde internal(只有本程序内或者继承于该类的类型可以访问).

可以使用修饰符的对象:namespace(命名空间),class(类),struct(结构),enum(枚举),interface(接口),delegate(委托),function(函数),变量

1.public:

访问不受限制.是权限最多的一个修饰符.namespace和enum成员,interface的成员隐式的具有public修饰符.不能再显式添加其修饰符.

2.private:

只有同一个class或struct中能被访问.class或truct中的成员如果不加修饰符则默认是private

3.protected:

访问仅限于当前class或继承的class.比如在一个class Student中声明一个函数protected int Add(){    };在则只能在Student中用Add,或者在继承于Student的子类中用base.Add()来用num.但实例化class得到的对象不能用Add.比如Student s = new Student();  s.Add();这样是错误的.(注意:声明class,struct前是不能加protected修饰的.只能用public 或internal)

4.internal:

仅限于当前程序集.即同一个project中.

class或struct,interface如果不加修饰符则默认是internal.但也可以显示声明为internal或public(注:如果class,struct是在一个class中声明的也可以protected,private修饰.也就是说一个class中还可以嵌套的声明一个class)

5.protected internal:

同一程序集或继承的子类可访问.其实相当于是protected 和internal两个权限累加到一起了.(注意,由于struct是不能继承的,所以它的成员也不能由protected或protected internal修饰.

注意:派生的class可访问性不能比基类更高.也就是说如果基类被internal修饰则子类只能用internal修饰.如果基类都public修饰子类可用internal也可用public.

除了权限修饰符外还有四个修饰符sealed,abstract,virtual,partial(这四个修饰符可以和上面五个权限修饰符一起用.写在权限修饰符前面或后面都行)

sealed只能用来修饰class,表示class不能被继承.

abstract可用来修饰class和class中的成员.但必须是class被abstract修饰了,成员才能被abstract修饰.它表示此class是抽象类,不能实例化,必须被继承并重写抽象函数

virtual只能用来修饰class中的函数,表明是虚函数,虚函数除了可以被重写外其他时候跟一般函数一样.虚函数重不重写是可选的,不是必须的

partial

通过使用关键字partial可以把一个class分开来写,可以在一个project中的不同文件中.在一个class特别大,由几个人合作写时这功能特别有用.

REFERENCE FROM : http://blog.csdn.net/weiwenhp/article/details/6968868

访问修饰符(public,private,protected,internal,sealed,abstract)的更多相关文章

  1. C#访问修饰符(public,private,protected,internal,sealed,abstract)

    为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及 ...

  2. 深入浅出OOP(五): C#访问修饰符(Public/Private/Protected/Internal/Sealed/Constants)

    访问修饰符(或者叫访问控制符)是面向对象语言的特性之一,用于对类.类成员函数.类成员变量进行访问控制.同时,访问控制符也是语法保留关键字,用于封装组件. Public, Private, Protec ...

  3. 访问修饰符public,private,protected,以及不写(默认)时的区别?

    private: 1.在当前类开发中,main方法之外可以直接借助名字使用,当前类的main方法中可以使用对象打点的方式直接使用成员. 2.在当前类之外,使用对象(或是类名,针对静态的)打点调用都是被 ...

  4. 访问修饰符 public,private,protected,以及不写(默认) 时的区别?

    修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protecte d √ √ √ × default √ √ × × private √ × × × 类的成员不写访问修饰时默认为 ...

  5. 访问修饰符 public private protected default

  6. 12、类成员访问修饰符public/private/producted/readonly

    1.private 类的私有成员 private 类的私有成员,只能在内部访问,在外部访问不到,无法被继承,我们可以将不需要被外部修改的定义为私有的 私有成员,只能在内部访问,在外部访问不到 priv ...

  7. 关于Java的权限修饰符(public,private,protected,默认friendly)

    以前对访问修饰符总是模棱两可,让自己仔细解释也是经常说不很清楚.这次要彻底的搞清楚. 现在总结如下: 一.概括总结 各个访问修饰符对不同包及其子类,非子类的访问权限 Java访问权限修饰符包含四个:p ...

  8. 2018/03/10 每日一学PHP 之 修饰符 public/private/protected

    对于面向对象 修饰符的使用是我们最常用,也是很容易忽略的小细节. 对于编程来说,把握好每一个小细节,就能构造出漂亮,优雅的程序. public 使用最多的修饰符,公共方法,允许所有访问,就像一个公交车 ...

  9. Java修饰符 public、protected、default、private

    2.访问修饰符public,private,protected,以及不写(默认)时的区别?答: 修饰符 当前类 同 包 子 类 其他包 public √ √ √ √ protected √ √ √ × ...

随机推荐

  1. NopCommerce 发布时 Could not load file or assembly 'file:///...\Autofac.3.5.2\lib\net40\Autofac.dll' or one of its dependencies

    本文转自:http://www.nopcommerce.com/boards/t/33637/4-errors.aspx 问题: The 3.5 solution compiles fine, and ...

  2. jquery back to top 页面底部的返回顶部按钮

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. [转]ORACLE 动态执行SQL语句

    本文转自:http://zhaisx.iteye.com/blog/856472 Oracle 动态SQLOracle 动态SQL有两种写法:用 DBMS_SQL 或 execute immediat ...

  4. Java设计模式之代理模式

    代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式: 人如其名,代理相 ...

  5. Sql动态添加字段的正确姿势

    如何给指定表动态添加字段? 一.创建一张表[Tbl_AutoFileds] (tableName表名,fieldName字段名,dataType数据类型,length长度  isnull 是否允许为n ...

  6. 三维网格形变算法(Gradient-Based Deformation)

    将三角网格上的顶点坐标(x,y,z)看作3个独立的标量场,那么网格上每个三角片都存在3个独立的梯度场.该梯度场是网格的微分属性,相当于网格的特征,在形变过程中随控制点集的移动而变化.那么当用户拖拽网格 ...

  7. java内存设置

    在上边红色框内加入java内存设置命令: -Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=512m

  8. [No000037]操作系统Operating Systems操作系统历史与硬件概况History of OS & Summaries!

    培根:读史使人明智 操作系统的简史 (1955-1965) 计算机非常昂贵,上古神机IBM7094 ,造价在250万美元以上 计算机使用原则:只专注于计算 批处理操作系统(Batch system) ...

  9. [No000005]C#注册表操作,创建,删除,修改,判断节点是否存在

    //用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除.键值的创建(设置值.修改),读取和删除.判断注册表项是否存在.判断键值是否存在. //准备工作: //1:要操作注册表 ...

  10. webpack.optimize.CommonsChunkPlugin插件的使用

    方式一,传入字符串参数 new webpack.optimize.CommonsChunkPlugin('common.js'), // 默认会把所有入口节点的公共代码提取出来,生成一个common. ...