Какой тип переменной Properties.Settings.Default c # wpf - PullRequest
1 голос
/ 30 мая 2011

У меня есть путь к параметру «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();

Ответы [ 2 ]

2 голосов
/ 30 мая 2011

Если вы используете C # 3.0 или более позднюю версию, var - хороший выбор.

Это приводит к тому, что компилятор автоматически выводит тип локальной переменной из выражения в правой части ее оператора инициализации.

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

В противном случае наведите курсор на правую сторону оператора инициализации (например, Password1) в среде разработки. Вы должны увидеть подсказку, которая выдает ее тип. Используйте это.


(Не по теме: присвойте локальные переменные именам, используя camelCasing, как рекомендовано в рекомендациях Microsoft по стилю кода 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();
1 голос
/ 30 мая 2011

Вы всегда можете использовать var - это заставляет компилятор сам определять фактический тип (во время компиляции, так что IntelliSense и т. Д. Все еще могут использовать статическую типизацию).

var Passwordpath = Properties.Settings.Default.Password1

Я недействительно уверен, что вы пытаетесь сделать, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...