簡體   English   中英

從不同的函數訪問類對象

[英]Accessing class objects from different functions

如何從不同的函數訪問類對象? 所以我有:

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

在我的 void main 函數中。

但是,當我嘗試從戰斗功能(我創建的新功能)中獲取: player1.name 時,無法識別 player1。

如何在我的函數之間共享類 player1?

我基本上可以使用函數參數將 player1 信息提供給函數“fight”,但如果我有 50 個參數要傳遞,那就很難了。

謝謝大家!

我試圖從不同的函數調用類 player1 但這是一個錯誤。

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

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

}

你的問題是范圍問題。 根據您聲明變量的位置,它們僅在特定范圍內可見。 有很多網站解釋了這個概念,但這里有一個:

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

為了回答您的問題,您可以將變量聲明為“全局”,然后可以在類中的任何函數中訪問它們。

您可以通過聲明將它們設為全局,即 Player player1 = new Player(); 然后將它移到你的 void main 方法之外,這樣它就不在任何方法的內部,而是在你的類內部。 然后,您將能夠在該類中的任何函數中訪問和修改該變量的值。

您還應該檢查私有、公共、受保護等訪問修飾符,以了解其他類如何訪問這些變量。

您需要將 Player 對象作為參數傳遞給函數 Fight。 例子:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM