【问题标题】:Increment variable in another class在另一个类中增加变量
【发布时间】:2014-01-14 14:31:11
【问题描述】:

甚至可以在另一个类中增加一个变量吗?示例:

public class Class1 
{
    public void Method1()//gets called
    {
        var c2=new Class2();
        c2.a++;
    }
}
public class Class2 
{
    public int a=1;
}

上面的代码只改变了c2中a的值,而不是Class2中的值。

在 Method1 被调用后,我希望 Class2 中的“int a”增加 1。 下一次我将创建一个 Class2 的新实例“a”将是 2。

【问题讨论】:

  • 你知道Class2 没有值aClass2 的实例具有此值,并且您使用 var c2=new Class2(); 创建了一个。

标签: c# class variables


【解决方案1】:

那是因为它不是static

static 变量适用于类的所有实例。如果它们不是 static.. 它们对于每个单独的实例都是本地的。

将您的字段声明更改为:

public class Class2  {
    public static int a = 1;
    //     ^^^^^^ this
}

将按您的预期工作。但是,你不能有一个类的实例来访问static 变量。你必须像这样访问它:

Class2.a++;

【讨论】:

  • 另外,不能通过实例成员访问静态成员,需要使用Class2.a++。作为旁注,“a”应该是一个属性,而不是公共数据成员。
  • 感谢@LordTakkera。我已经改写了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-05
  • 1970-01-01
  • 2012-03-19
相关资源
最近更新 更多