2015-09-20 40 views
1

我有一個類只需要在我的代碼中初始化一次,但它所在的函數被多次調用,並且類被一次又一次地初始化。這個類只需要被調用一次,因爲傳入它的數據永遠不會改變,並且讓我的代碼不止一次地重新初始化它是很浪費的。我想讓我的代碼檢查這個類是否已經被初始化,並且可以獲取已經生成的所需信息。我的第一個想法是設計Singleton模式,但我不認爲這是必要的,因爲在我的代碼中沒有其他地方需要這個類。什麼是做這種事的簡單方法?如何避免重新初始化永不改變的類?

+0

我怎麼樣一個靜態類 – Rohit

回答

2

使其成爲靜態。類將在初次使用時初始化...

+0

如果我做了類的靜態,就必須使函數和變量在它靜呢? – Lotzi11

+0

user3344076,當然。一切都必須是靜態的。 – Spawn

+0

謝謝你的幫助。我對這件事還是有點新鮮感,所以謝謝你對我的支持。 – Lotzi11

1

A static class是一種方法。

public static class MyClass 
{ 
    public static bool IsInited { get; private set; } 
    public static void Init(...) 
    { 
     ... 
     IsInited = true; 
    } 
} 

如果Init沒有參數,例如,可以設置所有的屬性本身,那麼你可以使用static constructor而不是Init。基本上,構造函數將在其他代碼首次訪問屬性時被調用。

public static class MyClass 
{ 
    public static bool IsUnix { get; private set; } 
    static MyClass() 
    { 
     IsUnix = Environment.NewLine == '\n'; 
    }