Перейти к содержимому

Как вернуть массив из метода c

  • автор:

Возврат массива из метода, что в коде не так? [закрыт]

Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой. Хотя похожие вопросы могут быть уместны на этом сайте, решение для этого вопроса вряд ли поможет будущим посетителям. Обычно можно избежать подобных вопросов написанием и исследованием минимальной программы для воспроизведения проблемы до публикации вопроса.

Закрыт 8 лет назад .
Прошу мне объяснить, что в этом коде не так ?

public void someMethod(string[] cats) < cats = < "tiger", "lion", "leopard" >; > 

Визуал студио ругается.
Отслеживать
задан 23 апр 2015 в 16:01
1,502 4 4 золотых знака 22 22 серебряных знака 50 50 бронзовых знаков
Нужно учить теорию. Void вообще ничего не возвращает.
23 апр 2015 в 21:50
В крайнем случае public void someMethod( out string[] cats)
23 апр 2015 в 21:59

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

Массивы в C# создаются с помощью ключевого слова new, объявления типа элементов массива, скобок [] и количества элементов в массиве (опционально):

int[] a = new int[2]; int[] b = new int[]; 

В случае, если массив инициализируется сразу, тип можно опустить (он будет выведен из типов элементов):

int[] b = new [] < 1, 2 >; 

А вообще, что вы хотите сделать?

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

public void someMethod(string[] cats) < cats = new string[] < "tiger", "lion", "leopard" >; > 

Если новые значения нужны и после выполнения метода, тогда надо пользоваться ключевым словом ref :

public void someMethod(ref string[] cats) < cats = new string[] < "tiger", "lion", "leopard" >; > 

Если вам нужно просто вернуть новые значения, то так:

public string[] someMethod(string[] cats) < return new string [] < "tiger", "lion", "leopard" >; > 

Как вернуть массив из метода c

Нужно передать массив в функцию, провести над ним некие действия и вернуть его обратно в метод Main.

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace FunctionArrayMy < class Program < static int[] PrintArray(int[] arr) < for (int i = 0; i < arr.Length; i++) < arr[i] = arr[i] * 2; >return arr; > static void Main() < int[] w = < 1, 2, 3, 4, 5, 6, 7>; int[] t;int i; t=PrintArray(w); for (i = 0; i < t.Length; i++) < Console.Write(t); Console.Write(' '); >Console.ReadLine(); > > >

Передал я вроде правильно, а вот возвращаться не хочет.
Подскажите что не так?
Последний раз редактировалось Gstar; 13.10.2012 в 15:06 .
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
Попробуй так return arr[0];
Регистрация: 13.10.2012
Сообщений: 8
Так не работает
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716

Попробуй объявить локальный массив и выделить ему память и передать ему твой параметр и возвращать не параметр а этот локальный массив.

static int[] PrintArray(int[] arr) < int[] t_arr = new int [arr.Length]; t_arr = arr; for (int i = 0; i < t_arr.Length; i++) < t_arr[i] = t_arr[i] * 2; >return t_ arr; >

Последний раз редактировалось coNsept; 13.10.2012 в 15:16 .
Регистрация: 13.10.2012
Сообщений: 8
Сделал.
Console.Write(t) выводит попрежнему не то: SystenInt32[]
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975

Сделал.
Console.Write(t) выводит попрежнему не то: SystenInt32[]

Консоль выводит то, что вы ей даете. В данном случае она получает на вход переменную «t», и выводит «t.ToString()», унаследованный от базового «object».

И еще: если PrintArray должна отдавать новый массив, и не должна менять старый, то следует немного переписать метод:

static int[] PrintArray(int[] arr) < int[] res = new int[arr.Length]; for (int i = 0; i < arr.Length; i++) < res[i] = arr[i] * 2; >return res; >

Как вернуть массив в java

Для возвращения массива в Java необходимо объявить возвращаемый тип метода как массив и вернуть этот массив из метода с помощью ключевого слова return . Например, чтобы вернуть массив целых чисел из метода, можно использовать следующий код:

public static int[] returnArray()  int[] arr = 1, 2, 3, 4, 5>; return arr; > 

В этом примере метод returnArray объявлен как public static int[] , что означает, что он возвращает массив целых чисел. Внутри метода создается массив arr и он возвращается с помощью ключевого слова return . После вызова метода можно сохранить возвращенный массив в переменной и использовать его дальше в коде.

C# вернуть массив из функции

vedro-compota's picture

Слово (имя типа) с квадратными скобками указывает массив какого типа элементов будет возвращён ,например массив чисел с «плавающей точкой»:

double []

Как известно — возвращаемый тип указывается перед именем функции (но после области видимости) — если ничего не возращают, то используют ключевое слово void

Key Words for FKN + antitotal forum (CS VSU):

  • неофициальный форум фкн
  • ФКН ВГУ Воронеж
  • программирование Воронеж
  • ВГУ информатика
  • ВГУ компьютерных наук
  • сайт студента
  • программирование информатика IT
  • сайт о программировании
  • примеры программного кода
  • сообщество программистов
  • Log in to post comments
  • 34498 reads

baton's picture

Wed, 01/15/2014 — 21:55

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *