以下事件可能在一帧中被调用数百次。
public bool OnCollision(Body body1, Body body2)
{
if(body2.Tag is Dog)
((Dog)body2.Tag).Bark();
}
我知道使用“is”会导致进行强制转换,然后当我想用它做某事时,请再次强制转换。有没有更有效的方法来检查类型?我制作了一个控制台应用程序尝试“if(body2.Tag.GetType() == typeOf(Dog))”,但它似乎比使用“is”还要慢。
Thanks.
if(body2.Tag is Dog)
实际上编译为
Dog Temp = body2.Tag as Dog;
if (temp != null)
在您的代码中,您将再次进行转换。更好的是:
Dog dog = body2.Tag as Dog;
if (dog != null)
{
dog.Bark();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)