Привет.Я только что подобрал C # для изучения игрового программирования на XNA, но у меня также есть некоторый опыт работы с Java.
Вот мой код, по сути:
public class A
{
public Rectangle getRectangle()
{
return [some rectangle];
}
public bool collision(A other)
{
Rectangle rect1 = getRectangle();
Rectangle rect2 = other.getRectangle();
return rect1.Intersects(rect2);
}
}
public class B : A
{
public Rectangle getRectangle()
{
return [some other rectangle];
}
}
Проблема возникает, когда я что-то пробуювот так:
A a;
B b;
if(a.collision(b))
...
Где, на сколько я могу сказать, версия get get rectangle фактически никогда не вызывается.Я попробовал решение, подобное предложенному здесь , но сообщение, которое я получаю, в основном «B.getRectangle () скрывает унаследованный член A.getRectangle (). Используйте ключевое слово new, если это было задумано».
Я заранее ценю любую помощь, которую я получаю.Я думаю, что мой прошлый опыт Java мешает понять, как C # отличается.Я думаю, если кто-то просто знает о хорошей ссылке, которая объясняет различия между C # и java или просто как C # работает в этом отношении, этого может быть достаточно.
Приветствия.