我有一个设置路径“Properties.Settings.Default.Password1”和“Properties.Settings.Default.Password2”。
现在我想使用其中一条路径。我使用以下代码:
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 :(得分: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
)的右侧。您应该看到一个提供其类型的工具提示。使用那个。
(偏离主题的建议:根据Microsoft的C#和.NET代码样式指南的建议,使用camelCasing命名本地变量。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();
答案 1 :(得分:1)
你总是可以使用var - 这会让编译器决定你的实际类型(在编译时,所以IntelliSense等仍然可以利用静态类型)。
var Passwordpath = Properties.Settings.Default.Password1
我不确定你想做什么。