在 C# 中存取靜態成員:避免實例引用錯誤
在 C# 中,存取靜態成員需要了解它們的獨特行為。 與屬於特定物件的實例成員不同,靜態成員屬於類別本身。 嘗試使用實例引用存取靜態成員會導致錯誤:「無法使用實例引用存取成員 '
靜態成員存取的正確語法:
存取靜態成員的正確方法是透過類別名,而不是類別的實例。
我們舉個例子來說明:
<code class="language-csharp">// Static class members namespace MyDataLayer.Section1 { public class MyClass { public class MyItem { public static string Property1 { get; set; } } } }</code>
不正確的存取(使用實例引用):
<code class="language-csharp">using MyDataLayer.Section1; public class MyClass { protected void MyMethod() { MyClass.MyItem oItem = new MyClass.MyItem(); someLiteral.Text = oItem.Property1; // Error! } }</code>
正確存取(使用類別名稱):
<code class="language-csharp">using MyDataLayer.Section1; public class MyClass { protected void MyMethod() { someLiteral.Text = MyDataLayer.Section1.MyClass.MyItem.Property1; // Correct! } }</code>
替代方案:刪除 static
修飾符
如果需要透過實例存取成員,請從成員宣告中刪除 static
關鍵字:
<code class="language-csharp">public class MyItem { public string Property1 { get; set; } // No longer static }</code>
這使得 Property1
成為實例成員,允許使用 oItem.Property1
進行存取。
遵循這些準則,您可以避免在 C# 中使用靜態成員時出現常見錯誤,並確保您的程式碼正常運作。
以上是為什麼我無法使用實例參考訪問C#中的靜態成員?的詳細內容。更多資訊請關注PHP中文網其他相關文章!