如何在一个代码范围内引用具有长名称的对象?

时间:2012-11-02 16:01:09

标签: c# reference

我有一个与我合作的对象,它被放置在很多字典和列表中,所以当我调用它时,该行变得非常长,我希望能够快速地使用它做一些事情它的参考,如下:

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

但似乎我不能在本地对象初始化之前放置ref。如何在不使用外部方法并将对象作为参数的情况下执行此类操作?

3 个答案:

答案 0 :(得分:5)

只需删除ref即可,因为o是类MyObject的实例,因此它是引用类型。您不会以这种方式创建新实例。

答案 1 :(得分:3)

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

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

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

using MyPair = System.Collections.Generic.Dictionary<string, string>;
...
var o = new MyPair("key", "value");

答案 2 :(得分:2)

只需删除ref - 您无论如何都要指定类型。

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

或使用var o =