[英]internal interface implementation in a public interface
internal interface ICommand
{
// some methods...
}
public interface IProject
{
// some other methods...
ICommand Command { get; set; }
}
我认为这很清楚。 由于可访问性,编译器不允许这样做。 有什么办法吗? 还是应该更改结构?
您可以将其abstract class
..允许在其上使用辅助功能修饰符:
internal interface ICommand
{
// some methods...
}
public abstract class Project
{
// some other methods...
internal ICommand Command { get; set; }
}
这样,您就可以在控制可访问性的某些部分时仍然执行合同。 但是,这可能会或可能不适合您,因为它会破坏您的继承能力。
接口的所有成员必须具有与接口本身相同的可访问性或更少的限制。 因此,您不能在公共接口中使用内部类型。
但是,您可以做的是拥有一个派生的接口,它比它的父对象更具限制性,该派生的接口可能包含内部成员。
internal interface ICommand
{
// some methods...
}
public interface IProject
{
// some other methods...
}
internal interface IProjectWithCommands : IProject
{
ICommand Command { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.