【发布时间】:2013-06-19 12:24:39
【问题描述】:
我想要做的是有一个对变量的引用数组。我的意思是等效于指向整数的 C 指针数组(例如)。
示例:(!!不是真正的代码!!)
int a = 4;
int b = 5;
int c = 6;
List<ref int> tmp = new List<ref int>();
tmp.Add(ref a);
tmp.Add(ref b);
tmp.Add(ref c);
tmp[0] = 16;
tmp[1] = 3;
tmp[2] = 1000;
Console.Writeline(tmp[0] + " " + a); // 16 16
Console.Writeline(tmp[1] + " " + b); // 3 3
Console.Writeline(tmp[2] + " " + c); // 1000 1000
我的案例的细节:我有一个字符串列表,它们将对应于字典中的键。我想我想要的是一个元组列表,其中 Type1 是对 int 或字符串的引用,而 Type2 是对文本框的引用。
我将遍历这个列表,使用字符串从字典中获取值(并对这些数据进行处理),然后将结果存储到 Type1 中。最终我将从那些 Type1 变量引用中获取数据并将它们的数据复制到相应的 Type2 文本框。
这就是我想我想做的事情的要点。如果有人认为我的方法过于复杂,我会说我需要保留文本框,因为它们是可悲的,所以我不能只创建一个数组并遍历它。最好也将 Type1 变量保持分开,尽管不是很有必要。
现在,通过阅读,我认为 Func 看起来是最接近我想要的有用的东西,所以我尝试使用以下(使用 Type1,作为对象,因为它需要处理两个整数和字符串)
List<Tuple<string, Func<object>, Func<object>>>
但我不确定如何使用它来获取对变量的引用。
【问题讨论】:
-
“如果有人认为我的方法过于复杂,我会说我需要保留文本框,因为它们是可悲的,所以我不能只创建一个数组并遍历它。” - 这是什么意思?
-
你可以在这种情况下使用指针,在方法中使用 unsafe 关键字并设置项目不安全以允许在 c# 中使用指针,也可以将值封装在一个类中,在 C# 中每个类都是引用类型
-
@Ahmedsafan:虽然我不同意你建议的可取性,但这应该是一个答案,而不是评论。
-
不确定我是否很好地理解了您的问题,但您可以使用泛型检查 link 。在执行异步或延迟编程模型之前,Func 委托并不是真正必要的
-
好的,无论如何,我试图为技术问题提供解决方案,无论它的用途如何。