1. Jen bych se chtěl ujistit, zda to chápu dobře. Když volám metodu s
argumenty a pokud je argument primitivní datový typ, tak je metodě předán
hodnotou a pokud argument není primitivní datový typ, tak je metodě předán
odkazem.
viz:
class Program
{
privatestaticvoid Main(string[] args)
{
int i = 1;
Change(i);
Console.WriteLine(i); // Výstup 1
MyClass myClass = new MyClass(1);
Change(myClass);
Console.WriteLine(myClass.Number); // Výstup 11
Console.ReadKey();
}
privatestaticvoid Change(int i)
{
i = i + 10;
}
privatestaticvoid Change(MyClass myClass)
{
myClass.Number = myClass.Number + 10;
}
}
class MyClass
{
publicint Number { get; set; }
public MyClass(int number)
{
Number = number;
}
}
Jen se chci ujistit. Vím, že existují klíčové slovo
ref, které zajistí odkaz i u primitivních dat. typů.
2. Chtěl bych se Vás zeptat, jak řešíte, když musíte dělat hluboké
kopie nějakých složitějších instancí?
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.