从不同的函数访问类对象

时间:2019-04-07 18:32:08

标签: c# function class computer-science

如何从不同的函数访问类对象?所以我有:

玩家player1 = new Player();
玩家player2 = new Player();

在我的void main函数内部。

但是当我尝试获取:战斗功能(我创建的新功能)中的player1.name不能被识别。

如何在我的函数之间共享class Player1?。

我基本上可以使用功能参数将player1信息提供给功能“战斗”,但是如果我要传递50个参数很难。

谢谢大家!

我试图通过不同的函数调用class Player1,但这是一个错误。

static void Main(string[] args) {
        Player player1 = new Player();
}

public void fight(){
        Console.WriteLine(player1.name);

}

2 个答案:

答案 0 :(得分:1)

您的问题是范围问题。根据声明变量的位置,它们仅在特定范围内可见。有很多网站解释了这个概念,但是这里有一个:

https://www.geeksforgeeks.org/scope-of-variables-in-c-sharp/

为回答您的问题,您可以将变量声明为“全局”,然后可以在类中的任何函数中访问它们。

您可以通过声明使它们成为全局变量,即Player player1 = new Player();。然后将其移到您的void main方法之外,这样它就不在任何方法之内,而仍在您的类之内。然后,您将可以在该类中的任何函数中访问和修改该变量的值。

您还应该检查访问修饰符,例如private,public,protected等,以查看其他类如何访问这些变量。

答案 1 :(得分:0)

您需要将Player对象作为参数传递给功能斗争。示例:

static void Main(string[] args)
{
    Player player1 = new Player();
}
public void fight(Player player)
{
    Console.WriteLine(player.name);
}