草庐IT

private-inheritance

全部标签

c# - 比私有(private)更私有(private)? (C#)

有时您有一个支持属性的私有(private)字段,您只想通过属性setter设置该字段,以便在该字段发生变化时可以进行额外的处理。问题是仍然很容易意外地从同一类的其他方法中绕过属性setter,而没有注意到您已经这样做了。C#中是否有解决此问题的方法或避免此问题的一般设计原则? 最佳答案 恕我直言,它没有被使用,因为:类必须信任自己如果您的类(class)规模太大以至于一部分人不认识另一部分,则应该将其分开。如果属性背后的逻辑稍微复杂一些,可以考虑将其封装在自己的类型中。 关于c#-比私

c# - "private"修饰符有什么作用?

考虑到“private”是类成员的默认访问修饰符,为什么还需要关键字? 最佳答案 这里有一定数量的错误信息:"Thedefaultaccessmodifierisnotprivatebutinternal"嗯,这取决于你在说什么。对于类型的成员,它是私有(private)的。对于顶级类型本身,它是内部的。"Privateisonlythedefaultformethodsonatype"不,它是一个类型的所有成员的默认值-属性、事件、字段、运算符、构造函数、方法、嵌套类型以及我忘记的任何其他内容。"Actually,ifthecla

c# - 在 Visual Studio 中,有没有办法按用途对私有(private)方法进行排序?

在VisualStudio中,无论有没有扩展,是否有一种方法可以根据使用顺序(它们在调用堆栈中的位置)自动对类中的私有(private)方法进行排序?例如考虑以下类:publicclassMyClass{publicvoidMyMethod(){TestC();}privatevoidTestA(){TestB();}privatevoidTestB(){Console.WriteLine("Hello");}privatevoidTestC(){TestA();}}这个类中的公共(public)方法是MyMethod,它调用TestC这叫TestA这叫TestB.我想(自动)按此顺序

c# - 需要按特定顺序执行的方法应该是私有(private)的吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭5年前。Improvethisquestion我有一个类可以检索一些数据和图像,对它们执行一些操作,然后它们使用网络服务将它们上传到第三方应用程序。对象需要按顺序执行一些特定的步骤。我的问题是我是否应该像这样明确公开每种方法。myObjectobj=newmyObject();obj.RetrieveImages();obj.RetrieveAssociatedData();obj.LogIntoThirdPartyWebServic

c# - C#中私有(private)类的概念

除内部类外,C#中是否可以存在私有(private)类? 最佳答案 只是不。除非它在嵌套类中,否则什么都没有未嵌套在其他类或结构中的类和结构可以是公共(public)或内部。任何其他类型都可以访问声明为public的类型。声明为内部的类型只能由同一程序集中的类型访问。类和结构被声明为默认内部,除非将关键字public添加到类定义中。类或结构定义可以添加internal关键字以明确其访问级别。访问修饰符不会影响类或结构本身——它始终可以访问自身及其所有成员。结构成员,包括嵌套类和结构,可以声明为公共(public)、内部或私有(pri

c# - 使用私有(private)类代替字段 - 性能/内存损失?

我正在审查某人的代码并遇到了这个私有(private)类(class):classCustomType:Dictionary{//Thisisempty;nothingomittedhere}然后在整个父类中使用CustomType。这当然很好,因为CustomType比Dictionary我的问题是,只为快捷方式设置内部类对性能/内存有何影响?在性能敏感的应用程序中,这是否会(甚至轻微地)增加内存和/或CPU使用率? 最佳答案 除非有其他原因需要定义自定义类型,否则我建议将其更改为using语句。usingCustomType=D

c# - 具有私有(private)构造函数的类和具有私有(private)构造函数的密封类有什么区别?

A和B有区别吗?A类有私有(private)构造函数:classA{privateA(){}}B类是密封的并且有一个私有(private)构造函数:sealedclassB{privateB(){}} 最佳答案 是的,A可以被嵌套类继承,而B则根本不能被继承。这是完全合法的:publicclassA{privateA(){}publicclassDerived:A{}}请注意,任何代码都可以创建newA.Derived()或从A.Derived继承(其构造函数是公共(public)的),但不能在源代码之外创建其他类A的文本可以直接继

c# - Json.net序列化特定的私有(private)字段

我有以下类(class):publicclassTriGrid{privateList_hexes;//otherprivatefields...//otherpublicproprerties}我的目标是只序列化_hexes字段,所以我创建了以下ContractResolver:internalclassTriGridContractResolver:DefaultContractResolver{protectedoverrideListGetSerializableMembers(TypeobjectType){returnnewList{objectType.GetMember

c# - 如何从类中获取私有(private)静态字段的值?

有没有办法使用反射从已知类中获取私有(private)静态字段的值? 最佳答案 是的。Typetype=typeof(TheClass);FieldInfoinfo=type.GetField(name,BindingFlags.NonPublic|BindingFlags.Static);objectvalue=info.GetValue(null);这是一个字段。对于属性,将type.GetField更改为type.GetProperty。您还可以以类似的方式访问私有(private)方法。

c# - 在 C# 中是否可以使用同名的公共(public) getter 和私有(private) setter?

如何为属性创建公共(public)getter和私有(private)setter?以下是正确的吗?publicStringPassword{set{this._password=value;}}privateStringPassword{get{returnthis._password;}} 最佳答案 是的,即使使用自动属性也是可能的。我经常使用:publicintMyProperty{get;privateset;} 关于c#-在C#中是否可以使用同名的公共(public)gette