2012-02-04 2 views
1
class test<type> 
{ 
    public test() 
    { 

    } 

    public bool byteTest() 
    { 
     return new byte().Equals(new type()); // Error at new type() 
    } 
} 

匿名タイプが指定されたタイプかどうかチェックしたいと思います。 (バイトのような)匿名タイプが指定されたタイプと等しいかどうかの確認

私はこれを似たようなものにしたいのですが、私は匿名のタイプを制限したいのです。私はちょうどバイトまたは整数として匿名型を宣言したいと思うように。

+0

a.gettype()。のtoString()== b.gettype()。のtoString();-) – stefan

答えて

3

タイプパラメータ(type)が特定のタイプ(byte)としてインスタンス化されているかどうかを確認しようとしているようです。そうしようとすると、ここで、次の

public bool byteTest() { 
    return typeof(byte) == typeof(type); 
} 

typeは、ジェネリック型パラメータを指します。 C#の匿名型は、匿名型の式で作成された値を参照します。そう

var x = new { Name = "john", Age = 42 }; 

注のように:私はTTValue、などのようなより標準的な一般的な引数名を選ぶだろうタイプTypeとの混同を避けるために... C#で

+0

はあなたに感謝します!私は別のAnonymousType名も使用しています。それはほんの一例でした。私はこれがうまくいくと思います – haxxoromer

+0

ああ、私はいつもこれらの定義について混乱しています:Dはいそれはジェネリック型パラメータです:) – haxxoromer

1

isキーワードは、このために特別に意味されます目的:以下のテストはnullが文字列の有効な値であっても、虚偽であることを

object something = "I am a banana."; 
if (something is string) 
{ 
    // This will execute, because something is a string. 
} 

注意。

object something = null; 
if (something is string) 
{ 
    // This will not execute. 
} 
+0

あなたの助けに感謝 – haxxoromer

関連する問題