如何使函数修改变量C#

ice*_*oge 2 c# variables scope function

嗨,我对C#和一般的编程非常陌生.我正在尝试将基于文本的冒险游戏作为我的第一个非制导项目.我正在将所有攻击/伤害卷分类为函数.但我无法获得修改变量的功能.

有谁知道如何获得一个全局修改变量的函数.

示例代码

class Program
{
public static int var = 10;

    static void Main(string[] args)
    {
        Maths();
        Console.WriteLine(var);
    }

    static void Maths()
    {   
        int var = 12;
    }
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我希望修改后的"var"打印为12,而"var"打印为10.

这是我想要使用这个原理的实际代码.

class Program
{
    //Char Stats
    static int playerMaxHealth = 50;
    static int playerHealth = 40;
    static int playerAttack = 10;
    static int playerLevel = 1;

    //Temp Stats
    public static int attackRoll;

    //Enemy Stats
    static int enemyMaxHealth;
    static int enemyHealth;
    static int enemyAttack;

    //Declar Random
    static Random randomObject = new Random();



    static void Main(string[] args)
    {
        attackRollFunc();
        Console.WriteLine(attackRoll);
        while(true)
        {
            if (playerHealth <= 0)
                death();
        }
    }


    public static int attackRollFunc()
    {
        int attackRoll = randomObject.Next(playerAttack);
        Console.WriteLine(attackRoll);
        return attackRoll;
    }
Run Code Online (Sandbox Code Playgroud)

Tim*_* S. 7

在代码中

static void Maths()
{   
    int var = 12;
}
Run Code Online (Sandbox Code Playgroud)

您正在声明一个名为的新局部变量var.这与您尝试修改的var 字段无关.

如果int从方法中删除部件,它将执行您期望的操作:

static void Maths()
{   
    var = 12;
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然`var`是一个合法的变量名,但它也是一个非保留的c#关键字.您应该使用不同的名称以避免可能的混淆. (4认同)