Ler*_*ins 7 c# static console-application
这看起来很基本,但我发现这很微不足道.您将如何建议使用静态类(即控制台应用程序)设置全局变量?
为了给你一些更多的背景,主要的方法是调用一些自定义的事件处理程序,我希望得到/设置变量.
您有任何想法或建议表示赞赏.
Aar*_*ght 14
C#中没有全局变量.变量始终是本地范围的.代码的基本单元是类,在类中,您有字段,方法和属性.
您可以通过在某个类中创建公共静态字段或属性来模仿"全局变量",但您不应该这样做.C#因为一个很好的理由而使这很困难; 全局变量是纯粹的邪恶.它们违反了OO设计的几个良好原则 - 封装,松耦合和高内聚,仅举几例.
我意识到这是一个初学者的问题,但我认为这是因为这是一个初学者的问题,说这个是非常重要的.现在是开始学习C#中积极劝阻或甚至危险的策略的最佳时机,并且使用静态字段/属性作为全局变量大约有六个.这些结构有合法用途,但是从一个地方到另一个地方传递数据不是其中之一.
如果两个不同的类依赖于相同的信息,则将信息从源传递到目标.这通常通过构造函数或作为被调用方法的参数来完成.您应始终拥有一个且只有一个真正"拥有"此信息的实例; 使信息"全球化"意味着您无法在任何给定的时间点推断出依赖于它的人或者什么.
请考虑这一点,并尝试考虑其他方法,您可以共享您要存储在全局变量中的信息(即通过将其作为构造函数或方法的参数提供).如果您不确定,请发布您尝试做的示例,我们会帮忙.
Sam*_*eff 10
最简单的方法是
public static Object MyGlobalVariable;
Run Code Online (Sandbox Code Playgroud)
这会创建一个公共静态字段.好一点是:
public static Object MyGlobalVariable { get; set; }
Run Code Online (Sandbox Code Playgroud)
这会创建一个公共静态属性.
| 归档时间: |
|
| 查看次数: |
37335 次 |
| 最近记录: |