Предаване на стойност по референция/променлива
Здрасти, банда!
Имам леко неразбиране на това как обекти си предават стойности м/у отделните методи. Доколкото разбирам от лекторите, масивите и списъците са референтни типове данни. Аз това го разбирам - не е нужно да използваш ref, за да прехвърлиш стойност м/у два и повече метода. Може да не съм го разбрал правилно, защото от кода долу очаквах bigger да си вземе коректно стойността. Оказа се, че, ако ref липсва, каквото и да правя bigger си взима по - ниската стойност??? Гледах го с дебъгера и реших проблема, като му казах, че е референция. Някой ще може ли да ми обясни защо работи така, тъй като не знам как да си формулирам въпроса към д-р Google?
using System;
using System.Collections.Generic;
using System.Linq;
namespace FUCKING_LISTS_Lab
{
    class Program
    {
        static List<int> ListLengthChecker(ref List<int> bigger, ref List<int> smaller, ref List<int> temp)
        {
            if (smaller.Count > bigger.Count)
            {
                temp = bigger;
                bigger = smaller;
                smaller = temp;
                return bigger;
            }
            else
            {
                return bigger;
            }            
        }
        static void Main(string[] args)
        {
            List<int> smaller = Console.ReadLine().Split().Select(int.Parse).ToList();
            List<int> bigger = Console.ReadLine().Split().Select(int.Parse).ToList();
            List<int> temp = new List<int>();
            ListLengthChecker(ref bigger, ref smaller, ref temp);
            for (int i = 0; i < smaller.Count; i++)
            {
                bigger.Add(smaller[i]);
            }
            for (int i = 0; i < bigger.Count; i++)
            {
                Console.Write(bigger[i] + " ");
            }
        }
    }
}