隐藏/限制通用基类直接使用其他程序集

时间:2017-03-23 18:45:35

标签: c# inheritance internal

但不在自己的集会内。这是可能的还是有意义的,而不使用抽象(即使这不会让我们在程序集中使用)关键字在基类上?

这会出错:

internal Foo<T>{}       // trying to stop this being directly used
public Bar:Foo<float>{} // inconsistent visibility, need this to be served

这也是:

public sealed Foo<T>{}
public Bar:Foo<float>{} // cannot derive from sealed class

使基类保护/私有也没有帮助。

它可能是一个接口,但我希望基本代码只写一次(接口强制所有实现它的类重复代码),基类只有1个虚方法,实现2个接口,非重复方法包含%90它的身体。

我希望基类不像接口那样不可用(但可以在自己的库程序集中使用),但是也只有一次定义了许多方法和属性,并且还实现了一些其他接口并且有一个虚方法但没有任何抽象方法。

关键字摘要是否有任何副作用,比如窃听类型检查代码以赋予true而不是false,或者对编译器进行一些优化,或者在C#.Net的新版本或旧版本之间存在不兼容性?

虽然我可以在它的程序集(库)中使用它,但保护它不受其他库的影响 是不可能的?

0 个答案:

没有答案