我正在看书"C#Language",然后点击VladimirReshetnikov的这张便条:Ifastaticclassdeclaresaprotectedorprotectedinternalmember,acompile-timeerroroccurs(CS1057).我可以知道为什么吗?具有protected成员的静态类有什么问题?静态类可以有私有(private)成员,所以我猜这个CS1057错误不是由于可访问性引起的,但也许是由于编译问题引起的?作为protected成员可以在子类中被覆盖...但我不明白为什么。 最佳答案
usingSystem;usingSystem.Reflection;namespaceReflection{classTest{protectedvoidmethodname(inti){Console.WriteLine(("intheworldofthereflection-onlyi"));Console.Read();}protectedvoidmethodname(inti,intj){Console.WriteLine(("intheworldofthereflectioni,j"));Console.Read();}}classProgram{staticvoidMai
classMyBase{protectedobjectPropertyOfBase{get;set;}}classMyType:MyBase{voidMyMethod(MyBaseparameter){//Iamlookingfor:objectp=parameter.PropertyOfBase;//errorCS1540:Cannotaccessprotectedmember'MyBase.PropertyOfBase'viaaqualifieroftype'MyBase';thequalifiermustbeoftype'MyType'(orderivedfromit)}}有没有
我为我的log4net日志记录对象的初始化创建了一个包装类,以便更容易地在ThreadContext中建立自定义属性。这发生在我与许多其他有用函数一起建立的类库中。为了加入所有不同的库,我还使用“/internalize”开关向ILMerge添加了一个AfterBuild目标。ILMerge所针对的库内对此初始化方法的所有引用似乎都工作正常。但是,当我在其他地方引用这个合并库时。我的实现会引发保护级别错误。我已尝试向可选的排除(/internalize:excludes.txt)文件中添加各种内容,但这似乎不起作用。excludes.txt示例:log4net.Configlog4ne
我有一个更新程序exe,用于关闭主exe,用更新的exe替换它,然后启动更新的exe。当更新程序尝试启动更新的exe时,如果UAC权限对话框被用户拒绝,更新程序将挂起。这是因为Process.Start()函数永远不会返回。顺便说一下,我的CPU周期表显示几乎没有使用。我希望我所有的用户都对UAC说"is",但既然我在这里,我想至少用某种错误消息来处理这种情况。假设我的用户至少拥有Windows7。exe本身是32位Winforms应用程序。目标.NetFramework是4.0。使用VisualStudio2010Ultimate。关于如何检测我的用户何时拒绝UAC对话框的任何想法?
这个问题在这里已经有了答案:HowtomakeapropertyprotectedANDinternalinC#?(8个答案)关闭9年前。MSDN上的C#语言引用将“protected内部”定义为“访问仅限于当前程序集或从包含类派生的类型”。但从语义的角度来看,“protected内部”对我来说听起来像是“既protected又内部”,这意味着该成员只能由同一程序集中的那些派生类访问。是否有具有相同含义的访问修饰符?
我知道我可以写了:protectedstatic在我的C#类中(在我的例子中,是一个aspx.cs)。以及:privatestatic这是什么意思?静态无处不在。为什么要保护/私有(private)? 最佳答案 static的定义并不是“随处可用”。它是在AppDomain范围内声明的类型之间共享的变量。AccessModifiers不改变这个定义,但明显影响访问范围。你混淆了static带有访问修饰符的修饰符。静态变量仍然需要定义可访问性。在您的示例中,私有(private)静态变量只能在定义它的类型中访问,而protected变
如何调用protected构造函数?publicclassFoo{publicFoo(alotofarguments){}protectedFoo(){}}varfoo=???这显然没有通过测试:publicclassFooMock:Foo{}varfoo=newFooMock();Assert(typeof(Foo),foo.GetType()); 最佳答案 调用无参数保护/私有(private)构造函数:Foofoo=(Foo)Activator.CreateInstance(typeof(Foo),true);调用带参数的非公
.NET中protected或私有(private)(非静态)事件的真正用途是什么?似乎任何私有(private)或protected事件都更容易通过虚拟方法处理。我可以(某种程度上)在静态事件中看到对此的需求,但对于正常事件则不然。您之前是否有一个用例清楚地展示了对非静态protected或私有(private)事件的需求或优势? 最佳答案 这是我曾经实现过的一个有点奇怪但真实的场景。您有部分类的机器生成和用户生成的两半。机器生成的一半包含希望在某些事件发生时通知用户生成的一半的代码。但是用户生成的一半可能不想做任何事情,或者可能
我正在做一个测试项目来了解对象的XML序列化,但我遇到了一个奇怪的运行时错误:namespaceSerializeTest{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}privatevoidserializeConnection(Connconnection){XmlSerializerserializer=newXmlSerializer(typeof(Conn));TextWritertextWrit