当前位置:  开发笔记 > 编程语言 > 正文

限制在派生类中访问方法

如何解决《限制在派生类中访问方法》经验,为你挑选了1个好方法。

我想在我的派生类中限制基类方法的访问.这可能吗?

class Class1 
    {
        protected virtual void Method()
    {

    }
}

class Class2 : Class1
{
    protected override void Method()
    {
        base.Method();
    }

}

class  Class3 : Class2
{
    public Class3()
    {
        //I want to restrict to use this method in this class alone
        this.Method(); 
    }

}

但它必须从基类派生.



1> Eric Lippert..:

这在我的采访中被问及我的朋友也在其他一些采访中被问到.但他们告诉我们可以限制这一点.

你要问的是,正如其他答案所指出的那样,在C#中是不可能的.所以,一些假设:

采访者错误地认为这是可能的.

采访者知道这是不可能的,想知道你是否知道这一点.

面试官在提问时表现不佳; 他们试图提出的问题与你在这里提出的问题不同.

面试官知道这是不可能的,但想看看你是否可以提出探究性问题 - 比如"你为什么要这样做?" - 为了看看你是否是那种专注于技术问题的人,或者你是否真的试图找出用户驱动的编写软件的理由.

如果我提出这个问题,我会推回"所以你告诉我的是你设计了一个类层次结构,其方法非常破碎,只有某些类可以正确使用它,并且只能使用它对于那些类,对吗? 不要设计那样的方法.问题不应该是如何阻止我的同事和客户使用这种设计糟糕的方法.问题应该是如何修复方法以使其对每个人都有用. "

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有