我要编写一个振动分析程序,有点像学校项目,它将使用传感器测量振动和其他一些东西,然后使用一些算法对其进行分析。
无论如何,我希望用户能够设置参数和变量,因此创建了一些不同的设置集。这是虽然,因为我将有许多相同类型的传感器(我现在不知道有多少)我想在添加传感器时创建这些设置的新集或实例。此外,有一些类型的变量我不知道会有多少这种类型的实例(比如不同的 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/