Mic*_*ael 34 c# access-modifiers
我有以下C#代码:
namespace ISeeOptic.BL
{
public abstract class Process
{
...
protected static void DeleteImages(List<ImagesPath> list)
{
some logic
}
...
}
protected class GetDataBL: Process
{
...
public static void DeleteImages(List<ImagesPath> list)
{
DeleteImages(list);
}
...
}
}
Run Code Online (Sandbox Code Playgroud)
在编译时我得到以下错误:
命名空间中定义的元素不能显式声明为private,protected或protected internal
我是C#的初学者所以也许这个问题可能看起来很幼稚,任何想法导致这个错误的原因是什么?
谢谢你提前.
pho*_*oog 35
命名空间中定义的元素可以显式声明为public或internal.
它们可能不会被显式声明为私有或受保护(或受保护的内部),因为这些修饰符仅对类的成员有意义.
protected class GetDataBL例如,你没有任何意义,因为"protected"意味着"可以从包含类继承的类访问" - 但是没有包含GetDataBL的类.
(我相信你实际上会得到一个编译时错误;如果你只是在执行时看到这个,那么你的代码也可能在执行时被编译,例如作为web应用程序的一部分.逻辑上它是一个编译时错误,不是例外.)
的protected访问修饰符(松散地)作出到派生包含类型访问的构件; 但在一个空间成员的情况下,存在是不包含类型.
同样的私有成员的访问域是包含类型的程序文本-又一次,也就是不包含类型.
你实际上试图通过保护来实现GetDataBL什么?