0

我有一个我使用的对象,它被放置在很多字典和列表中,所以当我调用它时,行变得很长,我希望能够使用它的引用快速做一些事情,像这样:

ref MyObject o = thingsStorageClass.dictionary[anotherDictionary[list.key]];
o.someField = value;
int i = o.integer;
DoStuff(o.specialSomething);

但似乎我不能只放在ref本地对象初始化之前。如果不使用将对象作为参数的外部方法,我该如何做这样的事情?

4

3 回答 3

5

只需删除ref它就会起作用,因为它是oclass 的实例MyObject,所以它是引用类型。您不会以这种方式创建新实例。

于 2012-11-02T16:02:29.067 回答
3

如果您正在谈论引用该对象,则只需将其分配给 a variable(删除ref关键字,这就是您所拥有的)。var如果您使用 C# 3.0 以上版本,则可以使用关键字进一步缩短它,例如

var o = thingsStorageClass.dictionary[anotherDictionary[list.key]];

或者,如果您指的是实际类型本身,那么您可以使用别名,例如

using MyPair = System.Collections.Generic.Dictionary<string, string>;
...
var o = new MyPair("key", "value");
于 2012-11-02T16:03:58.177 回答
2

只需放下ref- 无论如何您都在指定类型。

MyObject o = thingsStorageClass.dictionary[anotherDictionary[list.key]];
o.someField = value;
int i = o.integer;
DoStuff(o.specialSomething);

或使用var o =

于 2012-11-02T16:02:18.027 回答