变量范围 - 如何决定

时间:2010-01-21 20:58:14

标签: c#

如果我有类“A”我要声明一个实例,我经常在类“B”中使用,那么我应该在类“B”之外还是在每个方法中声明它的决定因素是什么?我在班级“B”中使用它?

public Class A
{
}

A declareClassA = new A();
public Class B 
{
}

public Class B 
{
  public void MethodA()
  {
      A declareClassA = new A();
      ...
  }
  public void MethodB()
  {
      A declareClassA = new A();
      ...
  }

}

5 个答案:

答案 0 :(得分:2)

首先,你不能(AFAIK)在类之外声明一个变量。

对于你的第一个例子,我认为你的意思是:

public Class B 
{
   A declareClassA = new A();
   // methods here..
}

至于你的问题 - 你是否需要在MethodA和MethodB中使用相同的实例?

如果您这样做,请使用上面的代码。如果没有,请在每种方法中使用单独的声明。

答案 1 :(得分:1)

最佳做法是将变量置于最低必要水平。如果需要在方法之间共享变量,那么它的范围应该在那之外。如果方法独立运行并且可以在该级别的范围内生存,那么您应该在那里声明/实例化新变量。

在不降低功能的情况下,始终尽量缩小范围。

答案 2 :(得分:0)

您想为每种方法使用新实例吗?如果是这样,请在方法内声明并实例化。

如果没有,请在课堂内宣布。

public Class B
{
    A myA = new A();
}

答案 3 :(得分:0)

在你的第一个方法中,似乎A可以是单例模式或静态类。这实际上取决于A中的数据,是否应该重用它以及应该存在多少个实例。

答案 4 :(得分:0)

这取决于您是否需要持久存储该对象。如果需要引用相同的实例,则将其声明为类级变量,否则在方法中声明它,以便减少方法之间的耦合。

此外,如果这些功能总是使用A类,请考虑它们是否应该属于A类而不是B类