c# - 创建新的设置实例

标签 c# constructor settings

我要编写一个振动分析程序,有点像学校项目,它将使用传感器测量振动和其他一些东西,然后使用一些算法对其进行分析。

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

有谁知道这应该如何完成?这可能非常简单,但谷歌没有给我任何信息,并且尝试使用构造函数创建一个新实例根本行不通。

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

    AccelerometerSettings Sensor3 = new AccelerometerSettings(); 

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

    Sensor3.accelerometerResolution = 10; 

(我在 double 类型的加速度计设置中有一个设置称为分辨率)没有给我任何信息。或者实际上,它给了我一个关于“=”的错误,并说它是一个无效的标记,并且 accelerometerResolution 是一个字段但用作类型。

编辑:这是由 Visual Studio 自动生成的设置类的代码:

        //------------------------------------------------------------------------------
// <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;
            }
        }
    }

最佳答案

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

var resolution = AccelerometerSettings.Default.accelerometerResolution;

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

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

关于c# - 创建新的设置实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19915950/

相关文章:

go - 缺少指向静态库的链接

c# - 使用 MVC 项目注册 Api Controller 路由

c# - SaveChanges 后属性未更新(首先是 EF 数据库)

C# 6 如何使用内插字符串格式化 double?

matlab - 与父类(super class)和子类构造函数交互

java - 给构造函数命名有什么意义

java - 如何通过传递 Object[] 而不是带反射的参数列表来创建类的新实例

c# - 在ASP.NET中运行的异常处理应用程序 block 异常处理程序无法调用Response.End()

text - Sublime Text 字体目录

windows-phone-7 - 如何通过代码获取 WP7 中的 "region & language"设置?