如何声明变量以供全局使用

时间:2016-01-29 11:40:36

标签: c# wpf static global

我搜索过类似问题的论坛,据我所知,应避免使用全局变量。对我来说这不合逻辑,因为我是编程新手。如果我已经理解了这一切,那么静态变量就可以完成我正在寻找的工作。

我在主窗口中制作了四个选项的组合框,当选择组合框时,声明变量b。这是在private void SelectionChanged.

中完成的

当选择组合框声明变量b时,弹出用户控件。我想在我的程序中进一步使用变量b,但我无法访问它。我试图在代码的开头声明static int b;,但我不确定我是否理解正确使用静态变量。有人可以帮助我吗?

4 个答案:

答案 0 :(得分:2)

完全避免使用全局变量和static关键字,除非您100%确定您的解决方案没有其他地址(有时您可能会被迫使用静态代码修补程序中的静态)。

  1. 静态/全局变量使代码耦合紧密
  2. 打破OOD原则(通常是依赖注入,单一责任原则)
  3. 不像许多人认为的那样简单的类型初始化过程
  4. 有时无法通过单元测试覆盖代码或打破ATRIP原则进行良好测试(隔离原则)
  5. 所以建议:

    1. 首先了解问题,根源,你将要实现的目标
    2. 检讨您的设计

答案 1 :(得分:2)

你可以这样做了

App.Current.Properties["valueTobestored"] = valueTobestored;

稍后访问它

string mystoredValue = Convert.ToString(App.Current.Properties["valueTobestored"]); 

答案 2 :(得分:1)

可以创建一个全局使用的变量。只需创建静态字段或属性:

NavigationController

无论您想要什么,您都可以从该存储设置或获取值:

@Url.Action("RecentlyUsedList", "Navigation");

答案 3 :(得分:1)

要创建&#34;全局变量&#34;,它应该是 public static ,并在 public <中声明< em> static 类。在.NET中,它是声明常量的常用方法(例如Math.PI),但它们不是变量

var element = document.createElement("div");
element.id = "test1";
element.appendChild(document.createTextNode(questions[i].ques));
document.getElementById("test").appendChild(element);

非公共变量仅在声明它们的类或方法中可见。

ps:使用全局变量非常糟糕。