我开始了解 C# 和 OOP,并且遇到了一个我似乎无法解决的问题。我有一个名为 DataSet 的类,它应该包含几个属性(以 System.Collections.Generic.Dictionary 对象的形式)。在类中,我有从数据库加载数据的方法,这些方法应该用于初始化 DataSet。基本上,当我从 Main 方法实例化它时,我希望 DataSet 对象设置所有属性。
我所拥有的是以下(省略细节):
public class DataSet
{
public IDictionary<string, MyClass1> Property1 { get; set; };
public IDictionary<string, MyClass2> Property2 { get; set; };
public IDictioanry<string, MyClass3> Property3 { get; set; };
public DataSet()
{
Property1 = new Dictionary<string, MyClass1>();
Property2 = new Dictionary<string, MyClass2>();
Property3 = new Dictionary<string, MyClass3>();
// Set Property1
// Set Property2
// Set Property3 (can only be done when Property1 is known)
}
private void GetProperty1(/* something? */)
{
// Loads the data from a database.
}
private static Dictionary<string, MyClass1> GetProperty1Alternative(DataSet dataSet)
{
// Same thing but static, so needs instance ref.
}
// Similarly for Property2 and Property3
}
我想要的是在构造函数中设置属性。我的问题基本上是:
- 我正在做的事情是正确的吗?
- 如果是,我应该让我的方法静态(并通过引用方法传递一个实例),这将要求类 DataSet 是静态的(及其所有属性),或者有没有办法在不制作 DataSet 的情况下做我正在做的事情静止的?
- 一个重要问题是 Property3 只能在 Property1 已知/设置后设置。我不知道这是否可能......
任何帮助是极大的赞赏。