如何从不同的函数访问类对象?所以我有:
玩家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);
}
答案 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);
}