具有公共(public)构造函数的公共(public)抽象类与具有protected构造函数的公共(public)类之间有什么区别。我们的抽象类中没有任何抽象函数,但我们希望程序员只能创建扩展该类的对象。这两种情况都可以编译和工作,但是我不明白在什么情况下使用哪个更好。我从小就明白,虽然你不能直接实例化一个抽象类(只能通过一个非抽象的子类),但抽象类通常应该包含需要由该类的子类实现的抽象函数。在公共(public)类中没有protected构造函数是否意味着无法实例化此类(这是我们唯一的构造函数)。 最佳答案 MSDNstates关
我目前运行的测试如下所示://InBlah.cspublicclassClassUnderTest{publicboolMethodUnderTest(){//Doabunchofstuff...returnHelperMethod();}protectedvirtualboolHelperMethod(){boolsuccess=false;//ProprietaryHardwareAccess.//DatabaseCalls.//FileSystemModifications.returnsuccess;}}//InTestBlah.cspublicclassTestStub:Cl
这个问题在这里已经有了答案:Whycan'tIaccessC#protectedmembersexceptlikethis?(7个答案)关闭9年前。这似乎是个新手问题,但您能解释一下为什么Der.B()方法无法通过Base类变量访问protectedFoo吗?这对我来说很奇怪:publicclassBase{protectedintFoo;}publicclassDer:Base{privatevoidB(Baseb){Foo=b.Foo;}//Error:CannotaccessprotectedmemberprivatevoidD(Derd){Foo=d.Foo;}//OK}谢谢!
我看过很多关于“Mockingaprivatemethod”的帖子和问题,但仍然无法让它工作,也没有找到真正的答案。让我们忘记代码的味道,你不应该这样做等等......据我所知,我做了以下事情:1)创建了一个类库“MyMoqSamples”2)添加了对Moq和NUnit的引用3)编辑AssemblyInfo文件并添加[装配:InternalsVisibleTo(“DynamicProxyGenAssembly2”)][程序集:InternalsVisibleTo("MyMoqSamples")]4)现在需要测试一个私有(private)方法。因为它是一个私有(private)方法,所以
我正在看书"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)}}有没有
我正在使用TelerikGridview来显示记录列表,我有超过10个页面,我正在使用此gridview并粘贴以下常见事件代码副本(有一些小的变化)在所有这些页面上:protectedvoidPage_Load(objectsender,EventArgse){DisplayRecords()}publicvoidDisplayRecords(){//Gridviewnamesaredifferentondifferentpages.GridView1.DataSource=Fetchingrecordsfromdatabase.GridView1.DataBind();}protec
我为我的log4net日志记录对象的初始化创建了一个包装类,以便更容易地在ThreadContext中建立自定义属性。这发生在我与许多其他有用函数一起建立的类库中。为了加入所有不同的库,我还使用“/internalize”开关向ILMerge添加了一个AfterBuild目标。ILMerge所针对的库内对此初始化方法的所有引用似乎都工作正常。但是,当我在其他地方引用这个合并库时。我的实现会引发保护级别错误。我已尝试向可选的排除(/internalize:excludes.txt)文件中添加各种内容,但这似乎不起作用。excludes.txt示例:log4net.Configlog4ne
这个问题在这里已经有了答案:HowtomakeapropertyprotectedANDinternalinC#?(8个答案)关闭9年前。MSDN上的C#语言引用将“protected内部”定义为“访问仅限于当前程序集或从包含类派生的类型”。但从语义的角度来看,“protected内部”对我来说听起来像是“既protected又内部”,这意味着该成员只能由同一程序集中的那些派生类访问。是否有具有相同含义的访问修饰符?