Tag: access modifiers

C ++中的访问修饰符区域是否等效?

可以在C ++中使用以下结构声明变量 private: public: protected: float bla1; float bla2; float bla3; C#中有等价的吗? 不得不重复自己似乎相当乏味; protected float bla1; protected float bla2; protected float bla3;

什么样的访问修饰符可以应用于类?

经过一番研究后,我确定您可以应用于类的唯一访问修饰符是: 公众 – 任何集会都有 internal – 仅在当前程序集中可用 但是下面的错误消息似乎暗示如果一个类没有在命名空间中定义,那么它可以被定义为private , protected或protected internal 。 public和internal是唯一可以在课堂上使用的类修饰符还是更多? using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test2343434 { class Program { static void Main(string[] args) { Tools.ToolManager toolManager = new Tools.ToolManager(); Console.ReadLine(); } } } namespace Tools { //error: Elements defined in a namespace cannot be explicitly //declared as […]

Get方法的大小

在代码行方面是否有关于“获取”大小的指导方针或一般共识? 我在一个成员上有一个Get方法,这里很容易增长到30行代码。 我不确定在什么时候这应该被引入一个方法。 但是我只会调用类似GetMyString的东西,并将值分配给另一个成员并在构造函数中调用它。 有没有值得这样做? 这对SO来说太主观了吗?

.NET – 如何创建一个类,只有一个其他特定的类可以实例化它?

我想要进行以下设置: class Descriptor { public string Name { get; private set; } public IList Parameters { get; private set; } // Set to ReadOnlyCollection private Descrtiptor() { } public Descriptor GetByName(string Name) { // Magic here, caching, loading, parsing, etc. } } class Parameter { public string Name { get; private set; } public string […]

如何更改用户控件的访问修饰符

我有一个在xaml中创建的用户控件,让我们将其命名为“View”。 在View.xaml.cs中,我将类View的访问修饰符更改为internal: internal partial class View : ViewBase { … } 更改访问修饰符后,编译器会声明错误: “ABView”的部分声明具有冲突的可访问性修饰符 我的第一个猜测是必须通过xaml代码在内部创建视图。 所以我添加了两行xaml: x:Name=”View” x:FieldModifier=”internal” 但这并没有解决错误。 我在哪里必须更改访问修饰符以使内部视图?

访问修饰符的安全影响(公共,私有,内部,受保护)

C#,Java和其他编程语言中的类 , 属性或方法的访问修饰符实际上是否会影响应用程序的安全性? 他们是否也以某种方式防止未经授权的访问 ? 或者它们只是清晰和适当编程的工具?

为什么C#不支持Protected和Internal可访问性的交集?

内部保护: 受保护和内部可访问性的结合(这比受保护或仅内部的限制更少) CLR具有受保护和内部可访问性交叉的概念,但C#不支持此function。 所以我的问题是: 省略这个访问修饰符的含义是什么,有一个具体的原因吗? 那么为什么C#不应该支持呢?

为什么使用公共变量?

变量,方法和类可以获得各种安全级别。 从我的C#经验来看,有: 上市 内部 保护 保护内部 私人的 现在,我理解使用方法和类私有,或内部或受保护,但变量怎么样? 即使我将变量设为私有,我也可以使用Property从不同的类中调用它。 我一直认为属性是最佳实践。 因此,如果我可以使用它,我不需要通过实例直接调用变量。 有没有理由不将变量设为私有? 编辑:我看到一些人谈论属性,好像他们只不过是Glorified公共变量 快速提醒:公共变量只返回它们的值。 使用属性,您可以执行更多操作。 例如: public int AmountOfBooks{ get { //code to check certain conditions //maybe trigger an event while we’re at it. //and a few conditionals. return this.amountOfBooks; } set { //a few conditionals //maybe trigger an event this.amountOfBooks = value; //and I […]

为什么我可以在该实例之外调用另一个相同类型实例的私有方法?

如果我有ObjectA,并且它有一个私有方法GetPrice()并且还有一个相同类型的“父”字段,为什么我能在子实例中调用父实例上的GetPrice() ? 例: private decimal GetPrice() { ObjectA parent = Parent; if(parent != null) { return parent.GetPrice(); // Why is this OK? } return 0; }

可访问性不一致:返回类型比方法C#更难访问

好的,所以这真的很奇怪。 我有一个私人成员,我想将它用于Form2。 我已经创建了一个公共静态方法,因此我可以将该成员转换为Form2。 这是我的代码: private static AppController appController; private BreadRepository breadRep; private CakeRepository cakeRep; private SandwichRepository sandwichRep; public Form1() { InitializeComponent(); breadRep = new BreadRepository(); cakeRep = new CakeRepository(); sandwichRep = new SandwichRepository(); appController = new AppController(breadRep , sandwichRep, cakeRep); } public static AppController getController() { return appController; } 我试图从Form1公开appController,但我得到更多的错误。 现在我明白了: 可访问性不一致:返回类型’exemplu_map.controller.AppController’比方法’exemplu_map.Form1.getController()’更难访问任何想法? 更新: 这是我的AppController类: class […]