首頁 >後端開發 >C++ >為什麼我的 C# 程式碼拋出「非靜態欄位、方法或屬性需要物件參考」錯誤?

為什麼我的 C# 程式碼拋出「非靜態欄位、方法或屬性需要物件參考」錯誤?

Barbara Streisand
Barbara Streisand原創
2025-01-22 05:36:09498瀏覽

Why Does My C# Code Throw

C# 錯誤: "需要物件參考才能存取非靜態欄位、方法或屬性"

這段 C# 程式碼中,Main() 方法內的 Population[i].bits = GetRandomBits(); 行出現錯誤,錯誤訊息為 "需要物件參考才能存取非靜態欄位、方法或屬性 'VM_Placement.Program.GetRandomBits()'"。 此錯誤表明,正在從靜態 Main() 方法呼叫非靜態方法 GetRandomBits()

在 C# 中,靜態方法與類別相關聯,而不是與類別的特定實例相關聯,而非靜態方法與類別的實例相關聯。這意味著非靜態方法需要類別的實例才能呼叫。

針對此特定情況,有兩種解決方案可以解決此錯誤:

  • 建立 Program 類別的實例:
<code class="language-csharp">Program p = new Program();
p.GetRandomBits();</code>

透過建立 Program 類別的實例,可以呼叫該實例上的 GetRandomBits(),因為它現在是一個實例方法。

  • 將 GetRandomBits() 方法設為靜態:
<code class="language-csharp">public static string GetRandomBits()
{
    // ...
}</code>

GetRandomBits() 設為靜態,允許在靜態 Main() 方法中直接呼叫它,而無需類別的實例。

以上是為什麼我的 C# 程式碼拋出「非靜態欄位、方法或屬性需要物件參考」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn