0

Object int の変数型を var にキャストしようとしています。

私の試みは:

var dummy = (items[items.Count() - 1].GetType()) items[items.Count()-1];

何が間違っているのかわかりませんが、エラーが表示されませんが、デバッガーは、代入、減分、および「新しいオブジェクト」式のみをコマンドとして使用できると言っています...しかし、それは私がやっていることです...

誰かが私のエラーを見せてもらえますか? 初歩的な質問で申し訳ありませんがよろしくお願いします。

4

3 に答える 3

2

Convert.ChangeTypeを使用する必要があります

var obj = Convert.ChangeType(d, items[items.Count() - 1].GetType());
于 2012-11-15T14:59:26.463 に答える
1

キャストはコンパイル型の操作です。コンパイラに「このオブジェクトは[ここに型を挿入]です」と伝えています。 GetType()特定の型 ( type ) を返すランタイム メソッドですType。したがって、いくつかの問題があります。コンパイル時のコンストラクトでランタイム メソッドを使用することはできません。第二に、実際には、この場合、 (返されたと仮定して)Typeと言うのではなく、 (これが可能であると仮定して) にキャストすることになります。StringGetType()String

あなたが何を達成しようとしているのかはわかりませんが、これはおそらくあなたがやりたいことです: http://msdn.microsoft.com/en-us/library/dtb69x08.aspx

varまた、 (コメントの一部に基づいて)何が何であるかを理解していない可能性があると思います。「物事をvarにキャスト」します。varは本質的に、コンパイラが型を推測できるようにするショートカットです。だから、このようなもの:

var myString = "this is a test";

以下と同等です:

string myString = "this is a test";
于 2012-11-15T15:00:45.140 に答える
1

発生しているエラーの原因は次のとおりです。

コンパイラは(items[items.Count() - 1].GetType())、キャスト ステートメントではなく式として認識します。

getAValue() (items[items.Count() - 1].GetType())

これは意味がありません。

他の人が言ったように、変数をキャストする必要があります。

于 2012-11-15T14:57:58.627 に答える