Tag: 私有

C#私有(隐藏)基类

是否可以使C#基类只能在它编译成的库程序集中访问,同时使从其inheritance的其他子类公开? 例如: using System.IO; class BaseOutput: Stream // Hidden base class { protected BaseOutput(Stream o) { … } …lots of common methods… } public class MyOutput: BaseOutput // Public subclass { public BaseOutput(Stream o): base(o) { … } public override int Write(int b) { … } } 在这里,我希望我的库的客户端无法访问BaseOutput类,但允许子类MyOutput完全公开。 我知道C#不允许基类比子类具有更多限制性访问,但是还有其他一些法律方法可以实现相同的效果吗? UPDATE 我对这个特定库的解决方案是将基类设置为public和abstract ,并使用“不要直接使用此基类”来记录它。 我还使基类的构造函数internal ,这有效地防止外部客户端使用或inheritance该类。 (这很遗憾,因为其他OO语言让我有隐藏的基类。)

属性vs公共成员变量

可能重复: C#中的字段和属性有什么区别? 我是一个初学程序员,我已经阅读了所有关于类属性的内容。 书籍声明属性允许您间接访问成员变量。 那么,是什么让它与公共领域直接访问并直接访问它有何不同? 以下是Jesse Liberty学习C#3.0的引用: 例如,您可能希望外部类能够读取值,但不能更改它; 或者您可能想要编写一些代码,以便内部字段只能接受某个范围内的值。 如果您授予外部类免费访问您的成员字段,则无法控制其中任何一个。 我不明白他在这说什么。 有人可以进一步解释这一点,或举例说明为什么我要使用财产而不是公开该字段。 据我所知,现在他们都会完成同样的事情……所以我显然在这里遗漏了一些东西。

在c#中将一组成员标记为私有/公共

在c ++类声明中,您可以将一组成员标记为私有或公共,例如 private: int x; double y; 似乎在c#中没有办法做到这一点。 我错了吗?

C#设置探测privatePath而不用app.config?

我有一个C#应用程序,为了组织它的文件我在一个名为“Data”的文件夹中有一些DLL。 我希望EXE检查此文件夹中的DLL,就像它检查当前目录一样。 如果我使用以下信息创建了App.Config: 它没有问题。 我不想要App.Config。 有没有办法在不使用app.config的情况下设置探测路径?

为什么我应该在属性访问器中使用私有变量?

对不起如果我是菜鸟,我有这个疑问,为什么我们使用私有变量并使用属性设置它们? 为什么我们不能单独使用本地人? 我在谈论这样的情况 private string _testVariable; public string MyProperty { get { return _testVariable;} set {_testVariable = value;} } 我在考虑简单地使用 public string MyProperty { get; set; } 为什么冗余私有变量? 这两种策略有什么不同? 任何人都可以请注意这一点。 谢谢

反序列化后初始化私有只读字段

我需要在反序列化后初始化私有只读字段。 我有以下DataContract: [DataContract] public class Item { public Item() { // Constructor not called at Deserialization // because of FormatterServices.GetUninitializedObject is used // so field will not be initialized by constructor at Deserialization _privateReadonlyField = new object(); } // Initialization will not be called at Deserialization (same reason as for constructor) private readonly object _privateReadonlyField […]