我有一个字典类,用于存储数据,并在会话过程中跟踪数百个变量。我的任务是构建一个通用框架,我可以引用该基本功能集,但允许调用组件在字典中使用不同的键和值。
目前,该字典使用 4 部分元组作为键和 2 部分值。我要绑定的两个组件具有不同的键和值布局。组件 1 - 键是一个由 5 部分组成的元组,值是一个由 3 部分组成的元组。组件 2 - 键是一个由 3 部分组成的元组(字符串、整数、字符串)和相同的 2 部分值。
此类处理向其他组件传输的数据,因此为避免重复工作,希望在 Common dll 中保留尽可能多的通用功能,并且外部组件将使用具有不同键/值的 Survey 类。不确定我是否解释得足够好。我在下面包含了当前的代码。在我看来,如果主调查是使用对象、对象和子类创建的,则使用正确的键/值对来创建外部组件。
public sealed class Survey
{
#region Private Objects
private Survey()
{
}
private Dictionary<SurveyKey, SurveyValue> survey = new Dictionary<SurveyKey, SurveyValue>();
private int maxLines = 50000;
private bool AllowLogging { get => (survey.Count > maxLines); }
#endregion
private void WriteData(SurveyKey key, SurveyValue value)
{
if (AllowLogging)
{
if (!survey.ContainsKey(key))
survey.Add(key, value);
else
survey[key] = value;
}
}
}
#region SurveyValue Class
public sealed class SurveyValue
{
public SurveyValue(int? value = null, string detail = null)
{
Detail = detail;
Value = value;
}
// Uses an either/or value; Value or Detail
public string Detail { get; private set; }
public int? Value { get; private set; }
}
#endregion
#region SurveyKey Class
public sealed class SurveyKey : Tuple<string, string, string, string>
{
public SurveyKey(string Signal, string SignalType, string Name, string OverallType) : base(Signal, SignalType, Name, OverallType) { }
public string Signal { get => Item1; }
public string SignalType { get => Item2; }
public string Name { get => Item3; }
public string OverallType { get => Item4; }
}
holdtom
相关分类