[英]Static field/property initialization
如果我有這樣的類型:
public struct Effect
{
public int Value { get; set; }
public static int MinValue = Int32.MinValue;
}
MinValue
只會初始化為ONCE,就像執行靜態構造函數一樣嗎? 或者我應該在靜態構造函數中初始化MinValue
?
這會對classes
有什么不同嗎?
是的,它會在靜態構造函數執行之前初始化一次。 對於引用類型(類)也是如此。
是的,每個進程(app域)只會初始化一次。
它將被執行一次,但不完全像在靜態構造函數中。 當類型具有靜態構造函數時,關於何時執行類型初始值設定項的規則是不同的 。 請注意,觀察到的行為也在.NET 4.0中發生了一些變化 。 通常你不需要擔心這一點。
據我所知,類和結構之間的類型初始化沒有區別。
請注意,您的MinValue
字段是公共的和可寫的 - 是不是意味着? 這似乎是一個壞主意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.