public void ChangeObjectType(System.Type objectType, Object selectedObject)
{
selectedObject = Activator.CreateInstance(objectType);
}
internal void BuoyToMouse()
{
ChangeObjectType(typeof(Buoy), selectedObject);
selectedObject.setPosition(mouseCurrentState.X - mouseStart.X, mouseCurrentState.Y - mouseStart.Y);
}
Run Code Online (Sandbox Code Playgroud)
我正在创建一个游戏,我正在尝试处理鼠标事件.我正在尝试使用Object类型的Object,然后根据单击的Object类型重新定义它的类型.
当我尝试这个时,我收到此错误消息:
错误2'对象'不包含'setPosition'的定义,并且没有扩展方法'setPosition'接受类型'object'的第一个参数可以找到(你是否缺少using指令或程序集引用?)
如何让它了解selectedObject更改类型?
你不能"改变对象的类型",但这听起来不像你想要做的那样.听起来你有一个特定类型的值,它保存在一个类型的变量中object.
在这种情况下,您可以告诉编译器您的值的实际类型是使用"强制转换":
((Buoy)selectedObject).setPosition(mouseCurrentState.X - mouseStart.X, mouseCurrentState.Y - mouseStart.Y);
(selectedObject as Buoy).setPosition(mouseCurrentState.X - mouseStart.X, mouseCurrentState.Y - mouseStart.Y);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9067 次 |
| 最近记录: |