【问题标题】:How to declare a variable that can be used by every method? | C#如何声明每个方法都可以使用的变量? | C#
【发布时间】:2020-06-05 08:27:13
【问题描述】:

我想问你如何声明一个每个方法都可以使用的变量?

我尝试将方法的访问类型设为公开,但这并没有让我在其他方法中使用它的变量

此外,我基本上想通过不同的方法累积具有不同值的变量,这就是我问这个的原因。

注意:我想避免制作任何静态类。

编辑:

例如,我做过

public decimal MiscMethod()  
{
    decimal value1 += 23m;  
}  

public decimal AutoMethod()  
{
    decimal value 1 += 34;
}

【问题讨论】:

  • 请向我们展示您的尝试(作为minimal reproducible example)以及发生了什么。
  • 你听说过全局变量和静态变量吗
  • @JonSkeet 我更新了问题。

标签: c# class variables methods public


【解决方案1】:

像全局变量一样使用它,但要确保在每个方法中使用它后都需要使值无效,因为这不会使值与其他方法相矛盾。

decimal value1;

public decimal MiscMethod()  
{
    value1 += 23m; 
    //Complete your code using value1
    value1 = 0;
}  

public decimal AutoMethod()
{
    value 1 += 34;
    //Complete your code using value1
    value1 = 0;
}

【讨论】:

  • 这不是类变量的使用方式。不需要使变量无效,因为对变量进行操作很有用。
【解决方案2】:

你的意思是这样的吗?

class Program
{
    static void Main(string[] args)
    {
        var myClass = new MyClass();
        myClass.Print(); //Output: Hello
        myClass.SetVariable();
        myClass.Print(); //Output: Test

    }
}

class MyClass
{
    string MyGlobaleVariable = "Hello"; //my global variable


    public void SetVariable()
    {
        MyGlobaleVariable = "Test";
    }

    public void Print()
    {
        Console.WriteLine(MyGlobaleVariable);
    }
}

用你的例子:

decimal value1 = 0;

public decimal MiscMethod()  
{
    value1 += 23m;  
}  

public decimal AutoMethod()  
{
    value1 += 34;
}

【讨论】:

  • 谢谢,但由于我们尚未阅读,因此我们不允许从事此工作。兄弟还有别的办法吗?
  • @Ninja:你的意思是你只被教过如何声明局部变量?如果是这样,那么不,您将无法使其正常工作。局部变量的意义在于它只在该方法调用期间存在。
  • @JonSkeet 我假设它是静态类,但我认为这绝对是我需要的。只需将变量放在任何其他方法之上 :) 谢谢大家
  • @Ninja:静态类完全不同。我认为现在是学习基本 C# 教程的好时机 - 了解不同类型的变量声明的工作原理非常重要。
  • @Ninja:我还不会从 C# 开始——我可能会从 C# in a Nutshell 或 HeadFirst C# 开始(确保你获得了最新版本)。 C# in Depth 更适合那些已经熟悉该语言基础知识的人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多