class test<type>
{
public test()
{
}
public bool byteTest()
{
return new byte().Equals(new type()); // Error at new type()
}
}
我想检查匿名类型是否是指定类型。 (比如字节)
为什么我要这样做类似这样的东西我想限制匿名类型。就像我只想将匿名类型声明为字节或整数。
答案 0 :(得分:3)
看起来您正在尝试查看类型参数(type
)是否被实例化为特定类型(byte
)。如果是这样,请尝试以下
public bool byteTest() {
return typeof(byte) == typeof(type);
}
此处的名称type
是指泛型类型参数。 C#中的匿名类型是指通过匿名类型表达式创建的值。像这样
var x = new { Name = "john", Age = 42 };
注意:为避免与Type
类型混淆,我会选择更标准的通用参数名称,如T
,TValue
等...
答案 1 :(得分:1)
C#中的is
关键字专门用于此目的:
object something = "I am a banana.";
if (something is string)
{
// This will execute, because something is a string.
}
请注意,即使null
是字符串的有效值,以下测试也是false。
object something = null;
if (something is string)
{
// This will not execute.
}