旧问题
所以这就是我想要实现的目标......我有一个现有的抽象类 ..let 将其命名为 Class1.cs 。它包含许多方法的定义。所以现在我已经包含了一些需要在 Class1 类的每个方法中实现的新功能。所以对于前
public void Method_1(string arg1, string arg2) { /* //some code implementation specific to Method_1 */ Dictionary<string, object> dict= new Dictionary<string, object>(); //there can be more or less arguments in other methods dict.Add("Arg1", arg1); dict.Add("Arg2", arg2); Method_2(dict); }
我必须在所有方法中做完全相同的事情,但参数可能会有所不同。所以字典对象可以有“n”个参数。有没有办法可以避免重复添加相同代码的体力劳动(如果可能的话,可以使用设计模式)
我想我不清楚...捆绑字典生成机制不是我关心的问题,我仍然需要在所有方法中添加相同的代码(大约 50 个)..我试图避免再次手动调用相同的代码又重复了 50 次……
编辑并重新
构建了这个问题,我最终决定用私有方法构建字典并在所有其他方法中调用它。请忽略本段之前的所有内容。我的方法看起来像这样
public void Method1(string a, string b , string c)
{
Dictionary<string,object> dict = BuildDictionary(new {a, b ,c});
/*the dict object should have the following structure
key=a, value= value of a
key =b , value = value of b
key =b , value = value of b*/
}
public void Method2(string x, string y)
{
Dictionary<string,object> dict = BuildDictionary(new {x,y});
/*the dict object should have the following structure
key= x, value= value of x
key =y , value = value of y */
}
private Dictionary<string,object> BuildDictionary(params object[] values)
{
//values.ToString() gives = { a= "Value of a", b== "Vaue of b", c= "Value of c"}
//Copy pasting Simon's Code here(use of anonymous objects)
var dictionary = values.GetType()
.GetProperties()
.ToDictionary(pi => pi.Name, pi => pi.GetValue(values));
//this dictionary object gives me a count of 7 with keys as the properties of the object datatype(which is not relevant to my case).
}
那么我需要对 BuildDictionary 方法进行哪些更改才能获得所需的字典结构?