Задать вопрос
Denisov80
@Denisov80
Юный Программист

Как создать указатель на массив или как решить задачу?

Здравствуйте подскажите как решить такую задачу?
Имеются несколько массивов:
byte[] array_bob, byte[] array_tom...
И в зависимости от содержимого переменой, в код необходимо подставлять нужные массив для дальнейшей обработки и использования.

switch (name)
{
    case "Bob":
       method_one(array_bob);
       method_two(array_bob) ;
        /* 
Дополнительный код 
         */
        break;
    case "Tom":
       method_one(array_tom);
       method_two(array_tom) ;
        /* 
Дополнительный код 
         */
        break;
    case "Sam":
       method_one(array_sam);
       method_two(array_sam) ;
        /* 
Дополнительный код 
         */
        break;
}


Не надо повторять одинаковые действия в каждом switch, а прописать этот код под switch,
И уже на основе switch подставлять массивы в методы?

Что то подобное сделать?

string common array = "";

switch (name)
{
    case "Bob":
        common = array_bob;
        break;
    case "Tom":
        common = array_tom;
        break;
    case "Sam":
       common  = array_sam;
        break;
}

/*

тут основной код 

*/


Массивы - это бинарные данные ( 50 - 500 bytes ), НЕ строки.
  • Вопрос задан
  • 102 просмотра
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
AshBlade
@AshBlade Куратор тега C#
Просто хочу быть счастливым
Не проще ли вынести логику работы с 1 массивом в отдельную функцию и в зависимости от name передавать разные массивы?
void CommonLogic(byte[] array)
{
      method_one(array);
      method_two(array);
       /* Основной код */
}
// Вызов этой функции
byte[] common;

switch (name)
{
    case "Bob":
        common = array_bob;
        break;
    case "Tom":
        common = array_tom;
        break;
    case "Sam":
        common  = array_sam;
        break;
}
CommonLogic(common);
Ответ написан
GavriKos
@GavriKos
Заменить массивы на List - он ссылочный, и все будет работать без копирования.
В принципе ваш код вроде тоже должен работать - но это будет копирование.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы