创建新的设置实例

时间:2013-11-11 21:06:32

标签: c# constructor settings

我正在编写一个振动分析程序,作为一个学校项目,它将使用传感器测量振动和其他一些事情,然后使用一些算法进行分析。

无论如何,我希望用户能够设置参数和变量,因此创建了一些不同的设置。但是,这是因为我将有许多相同类型的传感器(我不知道此时有多少)我想在添加传感器时创建这些设置的新设置或实例。此外,还有一些类型的变量我不知道有多少个类型的实例(比如用不同的RPM来比较振动),因此希望能够添加该变量的另一个实例。

有谁知道应该如何实现这一目标?它可能非常直接,但谷歌没有给我任何东西,尝试使用构造函数创建一个新实例根本不起作用。

这是我到目前为止所尝试的:

    AccelerometerSettings Sensor3 = new AccelerometerSettings(); 

给了我一个名为Sensor3的加速度计设置的新实例,但是

    Sensor3.accelerometerResolution = 10; 

(我在doubleme类型的加速度计中设置了一个叫做分辨率的设置)什么都没给我。或者实际上,它给了我一个'='的错误,并说它是一个无效的令牌,而AccelerometerResolution是一个字段,但用作一个类型。

编辑:以下是Visual Studio自动生成的Settings类的代码:

        //------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.18052
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

namespace Fault_detection_system {


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
    internal sealed partial class AccelerometerSettings : global::System.Configuration.ApplicationSettingsBase {

        private static AccelerometerSettings defaultInstance = ((AccelerometerSettings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new AccelerometerSettings())));

        public static AccelerometerSettings Default {
            get {
                return defaultInstance;
            }
        }

        [global::System.Configuration.UserScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.DefaultSettingValueAttribute("Accelerometer-Name")]
        public string accelerometerName {
            get {
                return ((string)(this["accelerometerName"]));
            }
            set {
                this["accelerometerName"] = value;
            }
        }

        [global::System.Configuration.UserScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.DefaultSettingValueAttribute("20.0")]
        public decimal accelerometerResolution {
            get {
                return ((decimal)(this["accelerometerResolution"]));
            }
            set {
                this["accelerometerResolution"] = value;
            }
        }

        [global::System.Configuration.UserScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.DefaultSettingValueAttribute("10.0")]
        public decimal accelerometerAccuracyUp {
            get {
                return ((decimal)(this["accelerometerAccuracyUp"]));
            }
            set {
                this["accelerometerAccuracyUp"] = value;
            }
        }

        [global::System.Configuration.UserScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.DefaultSettingValueAttribute("10.0")]
        public decimal accelerometerAccuracyDown {
            get {
                return ((decimal)(this["accelerometerAccuracyDown"]));
            }
            set {
                this["accelerometerAccuracyDown"] = value;
            }
        }

        [global::System.Configuration.UserScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.DefaultSettingValueAttribute("10")]
        public decimal faultFrequency {
            get {
                return ((decimal)(this["faultFrequency"]));
            }
            set {
                this["faultFrequency"] = value;
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

这是您可以在运行时通过静态属性Default访问的Settings类,它允许您从类型为AccelerometerSettings的app.config文件中访问加载的设置在那里你可以像这样访问它的属性:

var resolution = AccelerometerSettings.Default.accelerometerResolution;

如果您想更改设置并将其保存在user.config

 AccelerometerSettings.Default.accelerometerResolution = 42.0;
 AccelerometerSettings.Default.Save();