2011-05-30 52 views
1

我有一個設置「Properties.Settings.Default.Password1」和「Properties.Settings.Default.Password2」的路徑。什麼類型的變量Properties.Settings.Default c#wpf

現在我想使用這些路徑之一。我使用下面的代碼:

If (certain condition) 
{ 
kindOfVariable passwordPath = Properties.Settings.Default.Password1 
} 
else 
{ 
kindOfVariable passwordPath = Properties.Settings.Default.Password2 
} 

嗯,我知道密碼是一個字符串,多數民衆贊成沒有問題,但我想要的路徑。

但是我必須使用什麼樣的變量?還是有另一種方法來做到這一點?

通常你會保存這樣的新值:

Properties.Settings.Default.passwordPath = "New Password"; 
Properties.Settings.Default.Save(); 

我想與路徑做是爲了給這條道路上的一個新的價值,因此,例如

passwordPath = "New Password"; 
Properties.Settings.Default.Save(); 
+0

你能解釋我們更多關於你的意思是「路徑」嗎?儘管你已經編輯了你的問題,但沒有多大意義! – Coder323 2011-05-30 16:34:38

回答

2

如果您使用C#3.0或更高版本,var是一個不錯的選擇。

這會導致編譯器從其初始化語句右側的表達式中獲取局部變量的automatically infer the type

if (certain condition) 
{ 
    var Passwordpath = Properties.Settings.Default.Password1 
} 
else 
{ 
    var Passwordpath = Properties.Settings.Default.Password2 
} 

否則,將鼠標懸停在初始化語句的右側(Password1,例如)在開發環境中。您應該看到一個提供其類型的工具提示。使用那個。


(題外話建議:命名使用駝峯規則的局部變量的建議,微軟的C#和.NET代碼風格準則Passwordpath變量確實應該passwordPath


編輯回答更新的問題:

最簡單的方法就是到反轉邏輯。而不是嘗試存儲該屬性的地址並在稍後將其設置爲新值,只需將新值存儲在臨時變量中,然後使用它直接設置該屬性。也許這會更容易解釋一些代碼...

// Get the new password 
string password = "New Password"; 

// Set the appropriate property 
if (certain condition) 
{ 
    Properties.Settings.Default.Password1 = password; 
} 
else 
{ 
    Properties.Settings.Default.Password2 = password; 
} 

// Save the new password 
Properties.Settings.Default.Save(); 
+0

那麼密碼是偏離一個字符串,所以我可以使用一個字符串。但是我不想在'Password1'中輸入字符串,但我想要它的路徑。 – 2011-05-30 15:04:43

+0

@Lars - 當你說你想要「路徑」時,我不知道你的意思。什麼路徑?顯示的屬性只包含一個值。將該值存儲在局部變量中與直接訪問它是一回事。 – 2011-05-30 15:06:48

+0

請在我的問題中看看我的編輯,也許你明白了。 – 2011-05-30 15:08:10

1

你可以總是使用var - 這會讓編譯器決定你的實際類型(在編譯時,所以IntelliSense等仍然可以利用靜態類型)。

var Passwordpath = Properties.Settings.Default.Password1 

我不太確定你想做什麼。