2013-11-10 2 views
2

Я сделал приложение C# с графическим интерфейсом и некоторыми файлами настроек для пользовательских настроек. Однако, когда я собираюсь прочитать текущие значения параметров, таких как MySettings.Default.SettingsName;, он отлично работает для первого набора настроек, скажем MyFirstSettings. Для второго, однако, назовем это MySecondSettings, я получаю меру ошибки, которая говорит Ambiguity between My first Settings.Default and MySecondSettings.Default. Я не смог найти другой способ доступа к настройкам, но использовать .Default.Неоднозначность между настройками в C#

Любые советы были бы очень оценены!

Axel

+0

Возможно, это поможет немного больше контекста. Какие «настройки» вы используете? Построен в Visual Studio? – kmort

+0

Будет ли эта статья и ответ помочь? http://stackoverflow.com/questions/14371817/ambiguity-between-variables-in-c-sharp –

+0

@kmort: Да, это настройки, встроенные в Visual Studio, которые я использовал, те, которые вы добавляете, создавая новый элемент и выбираете настройки ,После создания это единственное, что я изменил, это переменные, а не имя и расположение файла. – user2950764

ответ

3

Если иметь два файла настроек, то, как правило, работают без каких-либо проблем:

следующие работы (и компилирует) для меня прекрасно:

Settings1.Default.Value1 = "11"; 
Settings1.Default.Save(); 

Settings2.Default.Value1 = "22"; 
Settings2.Default.Save(); 

Таким образом, проблема может возникнуть, если вы создали/скопировали файл Settings2 в некотором собственном и не очень «справедливом» виде вне VisualStudio (например). (В этом случае оба файла настроек могут ссылаться на тот же класс «Settings1»).


Как я создал файл настроек2 это перетащить-н-капли в растворе исследованной (с клавишей Ctrl нажат (копирование)) и переименовал его из «Копия настроек1» просто «настроек2».

Выбор «Добавить/Новые элементы ...» и выбор нового файла настроек также очень важны.

EDIT:

Как автор вопроса комментировал ниже:

В в DAQSettings «папку» Я обнаружил два экземпляра конструктора, один назван День Settings1.Designer и только что названный Settings.Designer.

... объясняет, что там было не так, поскольку для определенных классов/элементов было дублирование (дублирование имен), поэтому способ устранения проблемы - это «ручное вождение».

+0

Большое спасибо за ответ! На этом этапе все, что я пытаюсь сделать, - это прочитать значения в текстовое поле, что противоположно вашему примеру. Но я думаю, что процедура такая же. Во всяком случае, я создал оба файла настроек, используя стандартный визуальный студийный способ, и с тех пор ничего не изменил, кроме значений. Я тоже их не трогал, если бы они были в свойствах? Между прочим, они содержат разные переменные, поскольку они являются настройками для разных типов датчиков, подключенных к компьютеру. Я предполагаю, что тогда можно создать новые экземпляры, устанавливающие параметры, как в обычном объекте? – user2950764

+0

Затем вы должны предоставить более подробную информацию о своем коде (или какие-то другие «хитрые» моменты оттуда). – Agat

+0

Конечно! AccelerometerName.Text = AccelerometerSettings.Default.accelerometerName; и AccelerometerResolution.Text = Convert.ToString (AccelerometerSettings.Default.accelerometerResolution); Работает как очарование! DAQName.Text = DAQSettings.Default.daqName; Дает эти странные ошибки ... (Я признаю, что имена являются беспорядком, но если это не очевидная столица, первая буква - это имя параметра, а версаль сначала - имя текстового поля. Я хочу указать значение Настройки). Заранее благодарим! – user2950764

1

В моем случае у меня на самом деле была настройка в файле настроек по умолчанию Default. Это вызвало ошибку, вызвавшую ошибку

Ambiguity between Settings.Default and Settings.Default 

Изменение этого исправления.

Примечание: Да, нейминг, что установка «по умолчанию» была плохая идея, однако это очень маленькая программа, которая делает одну вещь, так что если кто-то пришел за мной и смотреть на это, они, вероятно, знать, для чего это было.

Смежные вопросы