草庐IT

private-inheritance

全部标签

c# - 当一个接口(interface)从另一个接口(interface) "inherits"时,你怎么调用它?

如果我有B类:A{}我说“B类继承A类”或“B类派生自A类”。但是,如果我有:classB:ISomeInterface{}说“B继承了ISomeInterface”是错误的——正确的说法是“B实现ISomeInterface”。但是,假设我有interfaceISomeInterface:ISomeOtherInterface{}现在,说“继承”仍然是错误的,但现在说“实现”也是错误的,因为ISomeInterface没有实现任何东西。那么,您如何称呼这种关系? 最佳答案 我个人说“扩展”,我认为C#规范也在某处使用了这个词(不幸

c# - 如何使用反射获取私有(private)字段的值?

我遇到了一个问题,我需要访问一个类的私有(private)字段。例如:classMyClass{privatestringsomeString;publicMyClass(stringsomeStringValue){someString=someStringValue;}}如何在MyClass之外获取someString的值?更新:抱歉,我不能在这里使用属性,因为实际的生产代码是protected。我是QA/Dev,我需要一种方法来让这些私有(private)化以编写用户验收测试。所以我无法更改生产代码。你能帮忙吗? 最佳答案 正

c# - 属性私有(private)集;

我知道它只允许类来设置它,但有什么意义呢?如何解决具有只读ID的问题?假设我有一个人类:publicclassPerson{publicstringName{get;set;}publicintId{get;privateset;}publicintAge{get;set;}}这是在Entities.dll中,由GUI、BL和DAL使用。GUI调用BL:Listp=BL.PeopleBL.GetPeople();为了示例调用DAL:...while(dr.read()){returnPersonList.add(newPerson{Age=dr.GetInt32(1),Id=dr.Ge

c# - 什么是私有(private)接口(interface)?

前段时间面试.NET职位时,面试官问我“你会用私有(private)接口(interface)做什么?”。我问他他的意思是隐式接口(interface)实现还是显式接口(interface)实现之间的区别,他回答没有。所以我想知道:他是什么意思?您会使用私有(private)接口(interface)做什么? 最佳答案 一个接口(interface)在另一个类中可以是私有(private)的publicclassMyClass{privateinterfaceIFoo{intMyProp{get;}}privateclassFoo:

c# - C# 编译器将 lambda 表达式视为公共(public)方法还是私有(private)方法?

在内部,编译器应该将lambda表达式转换为方法。在那种情况下,这些方法是私有(private)的还是公共(public)的(或其他),是否有可能改变它? 最佳答案 这取决于。在当前版本的VisualStudio中,实现lambda的方法从不公开,但也不总是私有(private)的。测试某些版本的lambda的简单程序:publicclassProgram{publicstaticvoidMain(){varprogram=newProgram();Try("A",program.A);Try("B",program.B);Try(

c# - C# 控制台应用程序中的 public static void Main() 和 private static void Main() 有什么区别?

有什么区别publicstaticvoidMain()和privatestaticvoidMain()在C#控制台应用程序中?特别是因为它与Main()方法有关(我了解public和private之间的区别)。 最佳答案 要作为应用程序的起点,Main方法不需要是public。如果您确实决定将其设为public,则它可能会被其他类或程序集调用。通常您不需要这样做,因此您可以将其设为private。将其设为public的一个可能用例是允许自动化测试调用它。 关于c#-C#控制台应用程序中的

c# - List<T> 只读,带有私有(private)集

我怎样才能公开List以便它是只读的,但可以私下设置?这行不通:publicListmyList{readonlyget;privateset;}即使你这样做:publicListmyList{get;privateset;}您仍然可以这样做:myList.Add("TEST");//Thisshouldnotbeallowed我想你可以:publicListmyList{get{returnotherList;}}privateListotherList{get;set;} 最佳答案 我认为你在混淆概念。publicListmyL

没有私有(private)变量的 C# 自定义 getter/setter

最近学了c#,所以在学写属性的时候,被教成这样:publicstringName{get;set;}汽车属性很棒!但现在我正在尝试做一些更复杂的事情,所以我需要编写一对自定义访问器。privatestring_Name;publicstringName{get{return_Name;}set{_Name=value}}我知道编译器在使用autos时会在其阴暗的深处创建一个私有(private)实例变量,但我被宠坏了,不想让那个私有(private)变量看起来毫无意义。有没有办法在没有私有(private)变量的情况下使用自定义访问器? 最佳答案

C# - 是否可以隐藏公开继承的方法(例如,对派生类私有(private))

假设我有一个带有公共(public)方法A和B的BaseClass,并且我通过继承创建了DerivedClass。例如publicDerivedClass:BaseClass{}现在我想在DerivedClass中开发一个使用A和B的方法C。有没有一种方法可以覆盖方法A和B,使其在DerivedClass中成为私有(private)的,以便只有方法C暴露给想要使用我的DerivedClass的人? 最佳答案 不可能,为什么?在C#中,如果您继承公共(public)方法,则必须将它们公开。否则,他们首先希望您不要派生自该类。您将不得不

c# - 私有(private)成员是否在 C# 中继承?

刚刚看到一个教程说:ClassDog{privatestringName;}ClassSuperDog:Dog{privatestringMood;}然后有一个UML显示SuperDog也将继承Name。我试过了,但对我来说似乎只有公共(public)成员是继承的。至少我无法访问Name,除非它被声明为公共(public)。 最佳答案 Aderivedclasshasaccesstothepublic,protected,internal,andprotectedinternalmembersofabaseclass.Eventho