我必须检查对象是否属于某种类型。 ATM我正在使用以下:
public void render(Graphics g) {
switch(objState) {
case Static:
g.setColor(Color.black);
g.fillRect(50, 50, width, height);
//g.drawImage(staticimg, x, y, null);
break;
case WalkRight:
g.setColor(Color.white);
g.fillRect(x, y, width, height);
//g.drawImage(walkright, x, y, null);
break;
case WalkLeft:
g.setColor(Color.cyan);
g.fillRect(x, y, width, height);
//g.drawImage(walkleft, x, y, null);
break;
case Stop:
g.setColor(Color.green);
g.fillRect(x, y, width, height);
//g.drawImage(stop, x, y, null);
break;
default:
break;
}
}
哪个很长,'笨重'。 是否有一些内置的解决方案可以检查两者?
答案 0 :(得分:3)
这个怎么样:
(Nullable.GetUnderlyingType(columnLambda.Type) ?? columnLambda.Type) == typeof(Guid)
或
(Nullable.GetUnderlyingType(columnLambda.Type) ?? columnLambda.Type).Name == "Guid"
当然,如果你想检查在编译时已知的具体值类型,你可以简单地用@Lee回答中的反射来做。
答案 1 :(得分:1)
您可以直接匹配类型,而不是通过名称匹配:
columnLambda.Type == typeof(Guid) || columnLambda.Type == typeof(Guid?)