Új hozzászólás Aktív témák

  • Lacces

    őstag

    Sziasztok!

    Jönnek a fórum kérdéseim:

    static void Main(string[] args)
    {
    int number = 0;
    int[] numbers = new int[1];

    m(number, numbers);

    System.Console.WriteLine("number is " + number + " and numbers[0] is " + numbers[0]);
    Console.ReadLine();


    }
    static void m(int x, int[] y)
    {
    x = 3;
    y[0] = 3;
    }

    Ennek a programnak a kimenet meglepett, próbáltam neten keresni a megoldás rá, hogy miért de nem esett le.
    Kimenet: number is 0 and numbers[0] is 3
    number=0, és numbers[0]=3.

    1.Miért? Hogy-hogy az egyiknél megtörtént az érték átadás a másiknál nem?

    a C# az int x, az ugye egy értéktípus?
    aztán néztem az msdn library-t és ott volt írva, hogy az int[] elemei nem más mint int típusú objektumok.

    Lehet, hogy itt van a lényeg elásva? Gondoltam itt arra, hogy nincs return így az int-nek nem adja vissza az értékét. de mivel az int[] object azért annak az értékét betudja állítani.
    Bár nem tudom, hogy ez a logika megállja-e a helyét?

Új hozzászólás Aktív témák