2014-07-07 154 views
1

我正在運行VS 2013 Express目標4.5。我有一個名爲ConfigMgrTest2的Windows窗體測試應用程序。在解決方案資源管理器中移動時出現兩個問題:解決方案資源管理器Visual Studio C#2013 Express

(1)使用Settings Designer工具創建了一個名爲'applicationSetting1'的應用程序設置。要訪問此設置,我需要這個語法:

var r = ConfigMgrTest2.Properties.Settings.Default.applicationSetting1; 

我不明白爲什麼我需要通過默認屬性來調用它。 Default和'applicationSetting'都是Settings類的成員。和「默認」涉及到「defaultInstance」爲什麼不直接叫我「applicationSetting」是這樣的:

var r = ConfigMgrTest2.Properties.Settings.applicationSetting1; 

(2)設置類兩個部分中創建。在Settings.Designer.cs文件中,創建了Default屬性。在Settings.cs中,創建設置事件處理程序。在我的一個項目中,我可以在解決方案資源管理器中看到Settings.cs文件,但在另一個項目中,我似乎錯過了此節點。

+1

我想知道默認屬性是一樣的,但我從來沒有問過。 –

回答

1

您的設置(本例中爲applicationSetting1)是Settings類的實例成員。 Default屬性通過Singleton模式表示該類的一個實例。爲了做到你想要在你的第二個例子做什麼,你就需要不斷在代碼中創建的Settings的實例,例如:

var settings = new ConfigMgrTest2.Properties.Settings(); 
var r = settings.applicationSetting1; 

這將是爲發展,也有可能留下的痛苦你有幾個這個班的實例在閒逛。

我只是看了一下我的Visual Studio 2013(專業版)。我看到Settings.settings文件(這是一個XML文件)和Settings.Designer.cs文件,它是實際生成類代碼的C#代碼。

+0

我看到這條線,var r = ConfigMgrTest2.Properties.Settings.Default.applicationSetting1 ;,; –

+0

這取代了上面的編輯:謝謝你的提示。我看到Singleton語法是如何縮短的。然而,我仍然不清楚'applicationSetting1'是一個屬性,它是通過另一個屬性Default訪問的。 –

+0

也看看這個問題的答案: http://stackoverflow.com/a/24624453/1662314 – Andreas

相關問題