Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14

Вернуть несколько значений из массива функции

19.05.2014, 22:40. Показов 2431. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть функция (довольно корявая, первый день за C#):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public string[] pinger(string path)
        {
            string url = textBox1.Text;
            Ping ping = new Ping();
            PingReply pingreply;
            try
            {
                pingreply = ping.Send(url);
            }
            catch (PingException)
            {
                return new string[1] {"Нет связи"};
            }
            if (pingreply != null)
            {
                return new string[2] { Convert.ToString(pingreply.RoundtripTime), Convert.ToString(pingreply.Address) };
            }
            else return new string[1] {Convert.ToString("0")};
        }
как мне вывести pingreply.RoundtripTime и pingreply.Address ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.05.2014, 22:40
Ответы с готовыми решениями:

Вернуть несколько значений из функции
Есть функция, которая создает массив, находит минимальный положительный элемент и произведение не нулевых элементов. Вопрос, как вывести...

Как вернуть несколько значений из функции
public void LoadFromFile(string path) { int i=1; int j=2; return } Пробовал записать в массив, но пишет ошибку Пробовал...

Вернуть из функции несколько значений
Приветствую всех. Создается класс для работы с прибором по последовательному порту. В классе будут реализованы функции для конкретных...

7
Неадекват
 Аватар для freeba
1501 / 1237 / 248
Регистрация: 02.04.2010
Сообщений: 2,807
19.05.2014, 22:57
Можно или возвращать массив строк, что предпочтительнее. Или использовать вот такой хак, если требуется возвращать разнотипные данные.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
 
namespace ConsoleApplication21
{
    class Program
    {
        static void Main(string[] args)
        {
            var obj = getObj();
            Console.WriteLine("{0} - {1}", obj.Color, obj.Count);
 
            Console.ReadKey();
        }
 
 
        static dynamic getObj()
        {
            return new { Color = "Black", Count = 34 };
        }
    }
}
PS: Никогда не используйте такое в боевом коде, это очень медленно и чревато Runtime Exception в случае малейшей опечатки.
0
0 / 0 / 1
Регистрация: 22.08.2013
Сообщений: 14
19.05.2014, 23:04  [ТС]
freeba, простите, но я пока совсем туп в этом. Мне просто надо вывести в один из textbox'ов pingreply.RoundtripTime, а в другой pingreply.Address. Но главное, вывести эти значения именно из массива.

З.Ы.
Спасибо за ответ.
0
71 / 62 / 33
Регистрация: 03.09.2013
Сообщений: 306
20.05.2014, 00:24
Лучший ответ Сообщение было отмечено nikulinlg как решение

Решение

Насколько я понял странный код как то так.
C#
1
2
3
MessageBox.Show(pinger(path)[0]+" "+pinger(path)[1] );
или 
Console.WriteLine(pinger(path)[0]+" "+pinger(path)[1] );
Хотя по мне было бы проще сделать это без массива. или хотябы зависать все что нужно через запятую и разбить на массив за пределами функции
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
20.05.2014, 00:35
Лучший ответ Сообщение было отмечено nikulinlg как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        public KeyValuePair<string, string> pinger(string path)
        {
            string url = textBox1.Text;
            Ping ping = new Ping();
            PingReply pingreply;
            try
            {
                pingreply = ping.Send(url);
            }
            catch (PingException)
            {
                return new KeyValuePair<string, string>("Нет связи", url);
            }
            string result = pingreply == null ? "0" : pingreply.RoundtripTime.ToString();
            return new KeyValuePair<string, string>(result, pingreply.Address.ToString());
        }
0
9 / 9 / 8
Регистрация: 22.04.2013
Сообщений: 52
20.05.2014, 01:51
еще можно через Tuple.
http://msdn.microsoft.com/ru-r... .110).aspx
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
20.05.2014, 01:53
Barii, tuplom лучше не пользоваться. Хотя бывает, что приходится...
0
162 / 154 / 73
Регистрация: 03.03.2014
Сообщений: 368
20.05.2014, 03:01
Barii, Только нужно помнить, что кортежи неизменяемы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.05.2014, 03:01
Помогаю со студенческими работами здесь

Вернуть несколько значений из функции С++
Здравствуйте!!! Нужна помощь. В общем есть ДЛЛ написанная мною на плюсах в VS 2005,она подключается к проекту на vb 6.0. Сейчас все...

Вернуть несколько значений из функции
Добрый день! У меня задача написать простинькую программу для работы с системным реестром windows. Но мне нужна подсказка по обработке...

Как вернуть из функции несколько значений?
Как вернуть из функции несколько значений?

Как из функции вернуть несколько значений?
Здравствуйте)! Не могу понять как из функции вернуть несколько значений,например чтобы функция инкрементировала 2 переменные взятые...

Как вернуть из функции несколько значений?
Привет :) Собственно говоря вопрос понятен из темы) Вот код, не знаю как реализовать возвращение трёх вычислений (Площади, Диагонали и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 23.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru