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