Почему double изменилось а int нет - C#

Узнай цену своей работы

Формулировка задачи:

Уважаемые, не могу понять. А если быть точнее - то подтверждения не нашел. Почему в ниже-приведенном коде значение массива меняется, а переменной i - не меняется? Как я понимаю: метод someMethod ничего не должен возвращать, т.к. он "void", но т.к. массивы являются ссылочными типами (подтверждение тому я не нашел), то значение в массиве было изменено, а в переменной i - нет. И если-бы не было массива, была-бы просто переменная double - то метод так-же бы ничего не вернул? Так ли это? Или есть другое объяснение? Спасибо.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class myClass
    {
        public void someMethod(double[] myArr, int i)
        {
            myArr[0] = 12.0;
            i = 12;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            double[] arr1 = { 0, 1.5, 3.9, 5.1 };
            int i = 0;
            Console.WriteLine("Массив arr1 до вызова метода: ");
            foreach (double d in arr1)
                Console.Write("{0}\t", d);
            Console.WriteLine("\nПеременная i = {0}\n", i);
 
            Console.WriteLine("Вызов метода someMethod ...");
            myClass ss = new myClass();
            ss.someMethod(arr1, i);
            Console.WriteLine("Массив arr1 после вызова метода:");
            foreach (double d in arr1)
                Console.Write("{0}\t", d);
            Console.WriteLine("\nПеременная i = {0}\n", i);
 
            Console.ReadLine();
        }
    }
}

Решение задачи: «Почему double изменилось а int нет»

textual
Листинг программы
        public void someMethod(double[] myArr, int i)
        {
            myArr = null;
            //myArr[0] = 12.0;
            i = 12;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.583 из 5