我怀疑这个问题说明我对C#幕后发生的事情缺乏了解,但是嘿......
在C#中进行CRM SDK项目涉及多个私有变量(CRM对象称为“列表”,但这并不重要),我发现我重复几乎相同的代码行。我尝试将私有变量推入类型为“list”的数组中,然后循环遍历此数组,并逐个设置变量。当然,这不起作用,因为(我认为)我实际使用的是我的变量列表的副本。
无论如何,简而言之,是否有办法在循环中设置私有变量的加载?我错过了一些非常明显的东西,或者我想要的实际上不可能吗?
答案 0 :(得分:2)
你实际上需要变量是独立的吗?您是否可以使用某种形式的集合开始 - 不是作为副本,而是在没有任何单独变量的情况下保存数据?
你在重复代码中对这些变量做了什么?您可能会发现可以使用便捷方法而不是真正循环。
答案 1 :(得分:1)
你可以尝试反思,
Reflection.FieldInfo fields[] = this.GetFields(BindingFlags.NonPublic | BindingFlags.Instance);
答案 2 :(得分:0)
通常你会创建一个Reset()
方法来重置对象的成员。
答案 3 :(得分:0)
如果您使用的是对象/类,则应引用数组中的值,而不是使用值的副本。
你的意思是这样吗?
private List<T> UpdateValues<T>(T[] values)
{
List<T> list = new List<T>();
foreach(T t in values)
{
list.Add(t);
}
return list;
}
然后你有一个T的列表,它应该相当容易使用。如果不是这样,你可以解决一下这个问题吗?