objekti in prenos po referenci

Načeloma naj bi bil prenos objekta preko metode po referenci, ne? Torej, če jz dam vrednostni tip od objekta v metodi kot parameter, naj bi se vrednost  v tem  objektom spremenile in obdržale, ko se klic metode konča. Ali se motim? Zakaj mi potem, ko dam vrednost od objekta v metodo ne spremeni? Torej se vrednost v objektu ohrani v staro vrednost, torej se naredi kopija te vrednosti....

Primer:
namespace ReferenceTest
{
    class Person
    {
        public int x = 10;
    }

    class Program
    {
        static void Main(string[] args)
        {
            Person p = new Person();
            ChangeData(p.x);//spremeni vrednost
            //izpise 10, ne 20
            Console.WriteLine("Stevilo je:{0}",p.x);
            Console.Read();
           
        }

        private static void ChangeData(int p)
        {
            p = 20;
        }
    }
}


























Avtor: bojanv, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

HedaWhece
HedaWhece - sobota, 16. november 2024

C Photomicrographs illustrating examples of MPN MOPi fiber densities for each treatment group used for MOPi intensity measures after contrast and brightness manipulation <a href=https://fastpriligy.top/>priligy (dapoxetine)</a>

HedaWhece
HedaWhece - petek, 08. november 2024

A melodious, huge, how to remove blood pressure meds from blood neat chanting sounded, and light smoke began to rise from the thick red sandalwood <a href=https://fastpriligy.top/>what is priligy</a> Ford said Why would aspirin use lead to even a small increase in the risk of advanced cancer in older people

bojanv
bojanv - sreda, 02. avgust 2006

Vrednostne tipe znam prenašat. Mislil sem, da je kaka finta, ker prenašam vrednost od objekta, torej p.x, da se to potem tudi prenese po referenci. Zdaj mi je jasno.... Thnx, Damir...

ExAmigan
ExAmigan - sreda, 02. avgust 2006

Parameter metode ChangeData je int, ki je vrednosten. Pri tem ni bistveno to, da gre za člana referenčnega razreda. &nbsp; Želeno boš dosegel, če parameter preneseš po referenci: &nbsp; private static void ChangeData(ref int p) &nbsp; ali pa seveda, če preneseš referenčni tip: &nbsp; private static void ChangeData(Person p)