[英]C#: static object variable in class
如果我在類中有一個靜態變量:
public class MyClass {
private static MyObject = new MyObject();
public void MyMethod() {
// do some stuff
}
}
變量在聲明時是否可以實例化,如上所述?
您的代碼合法且有效。
需要注意的一點是靜態構造函數和初始化程序在模塊加載時不會運行,但僅在需要時運行。
只有在創建MyClass實例或訪問其靜態字段時,才會實例化MyObject。
10.5.5.1靜態字段初始化
類的靜態字段變量初始值設定項對應於以它們出現在類聲明中的文本順序執行的賦值序列。 如果類中存在靜態構造函數(第10.12節),則在執行該靜態構造函數之前立即執行靜態字段初始值設定項。 否則,靜態字段初始化器在第一次使用該類的靜態字段之前的實現相關時間執行。封閉類類型的靜態構造函數在給定的應用程序域中最多執行一次。 靜態構造函數的執行由應用程序域中發生的以下第一個事件觸發:
·創建類類型的實例。
·引用類類型的任何靜態成員。
據我所知:
如果你問這是否合法C#,那么是的。 它會做你認為會做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.