0

使用するオブジェクトがあり、多くの辞書やリスト内に配置されているため、呼び出すと行が非常に長くなり、その参照を使用していくつかのことをすばやく実行できるようにしたいと考えています。そのようです:

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

refしかし、ローカル オブジェクトの初期化の前に置くことはできないようです。オブジェクトをパラメーターとして外部メソッドを使用せずに、このようなことを行うにはどうすればよいですか?

4

3 に答える 3

5

は class のインスタンスであり、参照型であるrefため、削除するだけで機能します。この方法では新しいインスタンスを作成しません。oMyObject

于 2012-11-02T16:02:29.067 に答える
3

オブジェクトの参照について話している場合は、それをに割り当てたいだけですvariable(キーワードを削除するrefと、それがあなたのものです)。varC# 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 に答える