2012-03-26 17 views
0

こんにちはどうすればいいですか?私のコードpc1でとても変数を使用して変数を呼び出す

int z = 1; 
string one = "pc"; 
string two = z.ToString(); 
        //what goes here 
Console.Write("Host One:\tSent-{0}\tSuccess-{1}\tFail-{2}", xxxxx.numepings, pc1.numepings_s, pc1.numepings_f); 
Console.WriteLine(); 

は何私はライン//what goes hereに使用することができ、その後、xxxxxの代わりに私がpcint 1変数concanatated文字列からインスタンスを呼び出すことができるように、オブジェクトのインスタンスのですか? ?

+0

_ "pc1"はオブジェクトのインスタンスです - いいえ、インスタンスには名前がありません。 'pc1'は特定のインスタンスを指すリファレンス変数です。 –

+0

申し訳ありませんが、私はあなたの質問を完全に理解していません。あなたはここで何を達成しようとしていますか、なぜですか?変数「z」、「one」、「two」は何と関係していますか? –

答えて

5

基本的に、あなたはしません。あなたはが潜在的に反射を使用することができますが、それは悪い考えです。代わりに、コレクションを使用して、複数のオブジェクトへの参照を格納し、何らかのキー(インデックス、名前など)でアドレス指定する必要がある場合は、必ず使用してください。

だからではなくなるの:

Foo pc0; 
Foo pc1; 
Foo pc2; 
... 

あなたは持っているでしょう:

List<Foo> pcs; 
... 
Foo pc = pcs[z]; 
+0

mmmm私はVBAでこのようなことをいくつか覚えていますが、それはもう少し前です。 – DevilWAH

+0

インデックスの代わりに文字列ラベル/タグでオブジェクトにアクセスする場合は、リストの代わりにディクショナリを使用します。 –

+0

@DevilWAH:はい、あなたはVBAからそれを行うことができるかもしれません - あなたが* should *を意味するわけではありません、またはC#で同じイディオムを使用できることを意味するわけではありません。 –

0

はこちらをご覧ください:http://msdn.microsoft.com/en-us/library/1fce0hc8.aspx

// Create an instance of the SomeType class that is defined in this 
// assembly. 
var oh = Activator.CreateInstanceFrom(Assembly.GetEntryAssembly().CodeBase, one + z /* as a full type name */); 

// Call an instance method defined by the SomeType type using this object. 
dynamic st = oh.Unwrap(); 

st.DoSomething(5); 

あなたがオブジェクトを作成するには、このような何かを行うことができますから、それは文字列名ですが、問題なしに特定の型にキャストすることはできません。

でもごまかすことができ、dynamicを使用してください。

編集:申し訳ありませんが、これはもともと正しくはありませんでした - 私は私の例を修正しました。

+0

これは投稿された文字通りの質問に答えるが、これは悪いアドバイスです。 –

+0

私はこれが最高の答えではないかもしれないことを知っています、しかし、それは依然として質問された質問に対する答えです。ハーフ - 合意された –

+0

。 :)しかし、それは上記のアドバイスから恩恵を受けることはできません似たような問題の答えを探して誰かのために便利になるかもしれません。 –

関連する問題