需要明确的是,我想要指针的行为,这个问题的目的是生成干净、可读的代码。
我有一些代码包含检查多个Dictionary.TryGetValue
调用结果的条件。如果它可以通过一次调用检索所有必需的对象会更干净,所以我想编写一个扩展,允许我执行以下操作:
Dictionary<string, string> myDictionary; // Initialized somewhere
string x, y, z;
bool foundAllEntries = myDictionary.TryGetValues({"xvalue", out x}, {"yvalue", out y},
{"zvalue", out z});
if (foundAllEntries)
; // Do something with x, y, and z
但是,我想不出一种将扩展方法引用传递给将保存输出的对象的方法。这似乎应该是非常基本的东西。
如何在对象中存储对本地引用的引用?
请注意,这个问题并不是要求实现 TryGetValues 函数的替代方法。有很多方法可以让这个“工作”,但没有一种方法能像我尝试采用的方法那样生成干净的代码。