Вторник, 26 Ноября 2024, 08:32

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
структура классов?
KiraДата: Вторник, 09 Апреля 2013, 15:46 | Сообщение # 1
заслуженный участник
Сейчас нет на сайте
Ну вот несколько нубских вопросов.
Создавая массив например :
Код

int[,] array=null;  

присвоив null что получаем? Чем это лучше оставив так?

далее например такая ситуация:
Код

public class Field
{
private int[,] field=null;
public Field(int[,] field)
{
this.field=field; // тут не будет никакой нагрузки?
//Что в целом произойдет? создаться новый массив и выделиться для него память или будет ссылка на тот который передали.
}
}

public class Draw
{
public (int[,] field)
{
//В целом на сколько плохо гонять массив туда сюда?
}
}

public class Game
{
Field field=null;
Draw draw=null;
int[,] array=null;
public Game(int x,int y)
{
array=new int[x,y];
field=new field(array);
}

}


Вобщем на сколько правильно так разделять задачи? По сути Draw может отрисовываьтся множеством способов в зависимости от апи. По этому удобно отдельно держать.
Мот есть что-нибудь интересное почитать или посмотреть по поводу.

Добавлено (09.04.2013, 15:46)
---------------------------------------------
ЗЫ: многие говорят что, особенно для мобилок критично писать так

Print(Field.GetFieldValue(x,y));

А так будет быстрее и правильней

int a=Field.GetFieldValue(x,y);
Print(a);


Unity3d разработчик на С#. Лучшее спасибо + в репу.
"Безумие: делать одно и то же снова и снова, и ждать при этом разных результатов".
"Человек, который никогда не ошибался никогда не пробовал ничего нового".
"Если человек может спокойно управлять автомобилем во время поцелуя красивой девушки, значит он уделяет поцелую недостаточно внимания”. Альберт Эйнштейн
RUNGOGET2THECHOPAHДата: Вторник, 09 Апреля 2013, 20:27 | Сообщение # 2
участник
Сейчас нет на сайте
Цитата (Kira)
присвоив null что получаем?

Получаем, что в стеке теперь лежит зануленная ссылка на массив интов.
Цитата (Kira)
Чем это лучше оставив так?

Не понял вопроса.
Цитата (Kira)
this.field=field; // тут не будет никакой нагрузки?
//Что в целом произойдет? создаться новый массив и выделиться для него память или будет ссылка на тот который передали.

Массивы дот нета - объекты классов, а классы - ссылочные типы. Так что в данном случае произойдет присвоение ссылок без создания новых массивов.
Цитата (Kira)
//В целом на сколько плохо гонять массив туда сюда?

Нисколько не плохо, потому что гоняются не массивы, а ссылки на массивы (см. выше).
zodiakДата: Среда, 10 Апреля 2013, 10:16 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Цитата (Kira)
присвоив null что получаем?

Получаем пустую ссылку на массив. Только оно и без =null будет null.

Цитата (Kira)
А так будет быстрее и правильней int a=Field.GetFieldValue(x,y); Print(a);

Быстрее не будет точно. Создание новой переменной требует памяти и времени.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
LetsOffBrainsДата: Среда, 10 Апреля 2013, 10:25 | Сообщение # 4
Project SoRDeLKa
Сейчас нет на сайте
zodiak, разве единожды выделить память под переменную не лучше, чем постоянно (при каждом рендере) вытаскивать ее?


zodiakДата: Четверг, 11 Апреля 2013, 11:00 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Цитата (LetsOffBrains)
разве единожды выделить память под переменную не лучше, чем постоянно (при каждом рендере) вытаскивать ее?

Память была выделена под переменную еще в классе. Зачем ее дублировать? Кто гарантирует, что в классе не изменится ее значение?
Да и в приведенном коде нет намека на то, что эта конструкция выполняется всего раз.


Точка зору окремо взятого індивіда завжди суб'єктивна!

Взломщик
Battle City.Net
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг