[英]Initialize static class implicitly
是否有可能在應用程序啟動時“自動”初始化靜態類? 我的意思是不需要引用屬性。
我之所以能夠做到這一點,是因為我想在啟動時自動為應用設置主題。
這是一個簡短的片段:
static class Settings{
private static Theme _defaultTheme;
public static Theme DefaultTheme{
get{
return _defaultTheme;
}
private set{
_defaultTheme = value;
ThemeManager.SetTheme(value);
}
}
static Settings(){
DefaultTheme = Themes.SomeTheme;
}
}
我知道我可以(並且現在就是這樣)去使用原始的getter / setter並致電
ThemeManager.SetTheme( Settings.DefaultTheme );
在App的構造函數(它是WPF項目)中,它會完成工作,但是,至少從我的角度來看(如果我輸入錯了,請糾正我),如果沒有需要明確說明。
是否有可能在應用程序啟動時“自動”初始化靜態類? 我的意思是不需要引用屬性。
確保靜態構造函數執行的唯一方法是使用某種形式的類型。 不一定需要引用屬性(它可以是構造實例,使用方法等),但是您確實需要使用類型。 靜態構造函數可能永遠不會運行。
您當前的選擇或它的變體,似乎是最好的解決方案。 您可以將其更改為只打一個電話,例如:
Settings.InstallDefaultTheme();
如果願意,因為對Settings
的引用將強制靜態構造函數執行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.