Проблема в том, что ваш код не будет компилироваться, потому что даже если вы знаете, Buoy
действительно имеет метод setPosition
, тот факт, что вы действуете как объект, не должен даже позволять вам компилировать.
То, что вы хотите сделать, это сначала привести его к типу.
internal void BuoyToMouse()
{
object selectedObject;
ChangeObjectType(typeof(Buoy), ref selectedObject);
((Buoy)selectedObject).setPosition(...
}
Вы также захотите использовать ключевое слово ref
public void ChangeObjectType(System.Type objectType, ref Object selectedObject)
{
selectedObject = Activator.CreateInstance(objectType);
}
Как примечание, это не «изменение» каких-либо типов, вы создаете новый экземпляр класса Buoy и используете Activator для его создания.