none
Почему не выводятся элементы массива? RRS feed

  • Вопрос

  • Создал простое консольное приложение в VS 2013:
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    
    namespace TestCons
    {
      class Program
      {
        public static void GetParam(string[] arrKey, string[] arrValue, int numKey)
        {
          AppSettingsReader appReader = new AppSettingsReader();
          arrKey = ConfigurationManager.AppSettings.AllKeys;
          if(arrKey.Length == 0)
          {
            Console.WriteLine("Не удалось найти конфигурационный файл программы!");
            Console.ReadKey();
            Environment.Exit(1);
          }
          for (int i = 0; i < numKey; i++)
          {
             arrValue[i] = (string)appReader.GetValue(arrKey[i], typeof(string));
          }
        }
    
        static void Main(string[] args)
        {
          int numKey = 2;
          string[] arrKey   = new string[numKey];
          string[] arrValue = new string[numKey];
          GetParam(arrKey, arrValue, numKey);
          for (int i = 0; i < numKey; i++)
          {
            Console.WriteLine("{0}\t{1}", arrKey[i], arrValue[i]);
          }
          Console.ReadKey();
        }
      }
    }
    
    Никак не могу понять, почему на экран выводятся значения ключей, а сами ключи не выводятся. В конце метода GetParam проверил значения arrKey, все значения ключей в массиве сохраняются. Помогите, пожалуйста. 

    Alex

    17 июня 2014 г. 14:32

Ответы

  • Вы присвоили локальной переменной arrKey новый массив:
    arrKey = ConfigurationManager.AppSettings.AllKeys;
    Массив, переданный в функцию, остаётся у вас без изменений.
    • Помечено в качестве ответа tumanovalex 19 июня 2014 г. 15:42
    17 июня 2014 г. 15:33

Все ответы