2012-02-04 176 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 2012-02-04 03:29:29

回答

3

它看起來像是試圖查看類型參數(type)是否被實例化爲特定類型(byte)。如果是的話請嘗試以下

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

名稱type這裏指的是一般類型參數。 C#中的匿名類型是指通過匿名類型表達式創建的值。像這樣

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

注:爲避免混淆類型Type我會選擇一個更標準的通用參數名稱一樣TTValue,等...

+0

謝謝!我也使用了不同的AnonymousType名稱。這只是一個例子。我認爲這會起作用 – haxxoromer 2012-02-04 03:31:17

+0

ahh我總是對這些定義感到困惑:D是這是一個泛型類型參數:) – haxxoromer 2012-02-04 03:35:19

1

C#中的is關鍵字爲此專門意思目的:

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

注意下面的測試爲假,即使null是一個字符串的有效值。

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

謝謝你的幫助 – haxxoromer 2012-02-04 03:45:59