【问题标题】:internal methods and data structures .内部方法和数据结构。
【发布时间】:2008-12-21 13:29:10
【问题描述】:

如果我有一个受保护的方法,我可以传入一个数据类型声明为内部的参数吗?

【问题讨论】:

    标签: c# .net scope internals


    【解决方案1】:

    不,除非类型(带有受保护的成员)本身是内部的。内部类型不能成为公共/受保护 API 的一部分,因为消费者无法使用它。

    但是,您可以考虑使用公共接口来抽象类型 - 即

    public interface IFoo {}
    internal class Foo : IFoo {}
    public class Bar {
        protected void Test(IFoo foo) {}
    }
    

    泛型对此也很有用:

    protected void Test<T>(T foo) where T : IFoo { }
    

    【讨论】:

      【解决方案2】:

      如果包含受保护方法的类在外部可见,则不会。那是因为某些外部类可以派生自该类,并且需要知道参数的类型。

      【讨论】:

        猜你喜欢
        • 2012-03-04
        • 1970-01-01
        • 1970-01-01
        • 2011-03-16
        • 1970-01-01
        • 2012-12-12
        • 1970-01-01
        • 1970-01-01
        • 2021-12-19
        相关资源
        最近更新 更多