Определите абстрактное свойство Getter для вашего базового класса.
В производном классе используйте личное статическое поле Image.
Переопределите абстрактное свойство Getter и верните поле статического изображения.
public abstract class Bullet
{
public abstract Image Image { get; }
}
public class SquareBullet : Bullet
{
private static Image _image /* = Load your image */;
public override Image Image
{
get
{
return _image;
}
}
}
В качестве альтернативы, если изображение является простым жестко запрограммированным значением:
public abstract class Bullet
{
public abstract string Image { get; }
}
public class SquareBullet : Bullet
{
public override Image Image
{
get
{
return "Square";
}
}
}
Преимущество здесь, если оно подходит, состоит в том, что значение "Квадрат" существует в сегменте кодане является сегментом данных и является «статическим» (или совместно используемым) по определению.