• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#中的Internal(转)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://hhping821.spaces.live.com/Blog/cns!44EAAB4CCCAA996B!159.entry

在C#中,有如下几种修饰符,分别是public,protected,internal,private。先来看一下C# 4th Edition中的说明:

 

public

No restrictions. Members marked public are visible to any method of any class.

 

private

The members in class A that are marked private are accessible only to methods of class A.

 

protected

The members in class A that are marked protected are accessible to methods of class A and also to methods of classes derived from class A.

 

internal

The members in class A that are marked internal are accessible to methods of any class in A's assembly.

 

protected internal

The members in class A that are marked protected internal are accessible to methods of class A, to methods of classes derived from class A, and also to any class in A's assembly. This is effectively protected OR internal. (There is no concept of protected AND internal.)

 

public,protected,private这三个就不说了,来看一下internal和protected/internal的用法。

假设有类A如下:

public class A
{
        protected int prot = 0;
        public int publ = 0;

        public void pub_func()
        { }

        protected void prot_func()
        { }

        internal void inter_func()
        { }

        protected internal void prot_inter_func()
        { }

}

 

public class Tester :A {

static void Main( ) {

A a= new A( );
//a.inter_func();
//a.prot_inter_func();
//a.pub_func();//this.inter_func();
//this.prot_inter_func();
//this.pub_func();

}

}

如果在同一个程序集中,假如有一个类A,其它类中想要使用A中的属性或方法的话,不管是new方法产生的还是继承产生的,都可以访问到protected internal和internal的方法。

但是如果A类不是在同一个程序集中,就有很大的区别了,首先,你用new方法产生对象中,不可以使用protected internal或internal来访问。继承的方式可以访问到protected internal,但不可访问internal。

当你写的一些类,不想让外部访问,只想让它的子类范围内访问的话,使用protected internal可以起到很好的保护作用。

c# 类的public private internal protected的区别

public 修饰的类,可以在整个系统的任意地方调用,是完全公开的.

private 相反的,只能在类内部调用.任何实例,无法调用private调用.

internal 仅为同项目(这里的项目是只单独的项目,而不是整个解决方案)调用,按照我的理解,应该是和java的friendly一样的效果.

protected   自己及自己的子类可以调用


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#SnippetTutorial-CustomEventHandlers发布时间:2022-07-18
下一篇:
C#图片旋转发布时间:2022-07-18
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap