2016-02-07 2 views
0

У меня сейчас очень интересное затруднительное положение. У меня есть пользовательский объект с именем misc.Weapon, который содержит растровое изображение. Пример:Классы и растровые изображения

private Image _proj; 
      public Image ProjectileImage 
      { 
       get 
       { 
        return _proj; 
       } 
       set 
       { 
        _proj = value; 
       } 
      } 

Если я ошибаюсь, класс изображения занимает ручку. У меня были проблемы со слишком большим количеством ручек. У меня также есть массивная библиотека misc.Weapon s под названием weapons. Это то, что он выглядит следующим образом:

public class Weapons 
    { 
     public misc.Trinket endanklet = new misc.Trinket("Anklet of Edurance", "Given to the 4th hero of Aebenclaw during the war, to live for a 100 years more."); 
     public void inittrink() 
     { 
      endanklet.Method =() =>{PSTATS.maxhealth += 50;}; 
      endanklet.end =() =>{PSTATS.maxhealth -= 50;}; 
     } 
     /// <summary> 
     /// Speeds: 
     /// 1 = very slow 
     /// 2 = slow 
     /// 3 = normal 
     /// 4 = quick 
     /// 5 = lightning 
     /// </summary> 
     public misc.Weapon natureblade = new misc.Weapon("Blade of Nature", "Laiden with the flowers of The 9 Wreathes", 22, 22, "M", 3, Properties.Resources.BladeOfNature); 
     public misc.Weapon dagger = new misc.Weapon("Dagger", "Sharp as the eye that throws it", 4, 0, "M", 5, Properties.Resources.Dagger); 
     public misc.Weapon bluescepter = new misc.Weapon("Saphire Sceptre", "This is what happens when a saphire is put on a stick", 7, 15, "S", 2, Properties.Resources.SaphireSceptre); 
     public misc.Weapon silscepter = new misc.Weapon("Platinum Sceptre", "Dat platinum doe", 15, 40, "S", 2, Properties.Resources.SilverSceptre); 
     public misc.Armour rustychainmail = new misc.Armour(7, "Rusty Chainmail", "So out of fashion"); 

     public misc.Armour wraitharmour = new misc.Armour(8, "Shadow plated hide", "Found in a warehouse in the southern spike, which was said to be haunted"); 
     public misc.Armour telepathic = new misc.Armour(2, "Telepathic armour", "Use your mind!"); 

     public misc.Weapon volcanictome = new misc.Weapon("Volcanic Storm", "Fire is always a slow death, the Volcanic Storm, slightly less so", 5, 40, 6, 3, Properties.Resources.VolcanicTome,Properties.Resources.VSProjectile); 
     public misc.Weapon icyblow = new misc.Weapon("Icy Blow", "Make's your head hurt", 18, 10, "M", 1, Properties.Resources.IcyBlow); 
    } 

мне нужна эта библиотека идет, но для каждого оружия, есть несколько ценной ручка увозит из памяти моего компьютера. Мне нужно иметь возможность ссылаться на каждое оружие индивидуально (потому что у меня их случайное падение, и я не хочу делать новый misc.Weapon на месте) без затрат на объекты GDI +/ручки.

ответ

0

Вы можете сделать ProjectileImage собственности ленив. Вместо того, чтобы сразу загрузить и назначить Bitmap, вы можете назначить его только при первом доступе к ресурсу.

Также есть много Доступные ручки. Тот факт, что у вас закончились ручки, вызывает у меня подозрение. Вы правильно распоряжаетесь ресурсами? Вы уверены, что в конце концов вы удалите все ссылки, чтобы они могли быть GC'ed?

+0

Как именно я должен реализовать этот метод? –

0

Я понял это, это было на самом деле несколько строк кода, чтобы сделать с другими классами делает классом, который назвал их:/

Смежные вопросы