zoukankan      html  css  js  c++  java
  • protected,internal和protected internal

    我03年开始搞C#,搞了好多年了,楞是没搞出什么名堂。其中是有原因的,水平太烂。
    好比面向对象里非常基本的protected可访问级别,一直都没搞清楚。
    我记忆中,好像在哪读过,基类中的protected,在子类中会变成private,所以只能被儿子访问,孙子就不行了。但事实上,protected不管在基类还是子类,永远都是protected。
    另外,internal这个访问级别原本不知道有什么用,现在有点明白了。它的作用是只能在本程序集里才是可访问的。比如,你写了个公用类库,编译成一个独立的DLL被其他程序调用,这时候,internal可以保证有些东西只能在这个公用类库才能访问,那些调用程序即使继承了里面的类,也无法访问这些东西。
    C#里protected还可以与internal结合:protected internal,只能在本程序集中,由本类或继承类访问。

    ==================================

    我又发现一种现象

    属性里边,访问器get和set如果成对出现,则它们其中一个(仅一个)可以设置访问修饰符,并且这个访问限制应该比属性的更为严格。例如

    public
     string
     Name
    {
    get
    {
    return name;
    }
    protected set
    {
    name = value;
    }
    }

    这个当然是有用的,通常我们都希望SET有更严格的限制。

    对于 protected 这个东东,属性和方法的访问级别似乎也有区别。比如,基类中有:
    class Base
    {
    protected int Property{get;}
    protected int Method();
    }
    它们都是protected,子类中访问当然没有问题
    class Son : Base
    {
    void Test()
    {
    int i = Property;
    Method();
    }
    }

    但如果象这样




  • 相关阅读:
    shell脚本杀掉指定进程下所有子进程(包括子进程的子进程)
    XDebug调试
    PHP基础入门
    猴子补丁(Monkey Patching)
    编写python高质量python代码的59个有效方法
    ubuntu中不能使用终端的情况
    一些个人有用的网站
    Ubuntu将自带的python3升级
    [Vue warn]: You may have an infinite update loop in a component render function.
    OO第四单元总结&期末总结
  • 原文地址:https://www.cnblogs.com/leftfist/p/4258181.html
Copyright © 2011-2022 走看看