musim pozit ref parameter pri metodach napr.:
void aaa(MyClass obj) // alebo ma byt (ref MyClass obj)
{
this.obj = obj; // chcem aby this.obj bolo obj, cize ak sa zmeni neco v obj tak aj v this.obj
}
musim pozit ref parameter pri metodach napr.:
void aaa(MyClass obj) // alebo ma byt (ref MyClass obj)
{
this.obj = obj; // chcem aby this.obj bolo obj, cize ak sa zmeni neco v obj tak aj v this.obj
}
Pomoci toho ref by to melo jit tak,jak chces.
diki, uz som si to stihol otestovat a ide to aj bez:
namespace Testing
{
public class MainClass
{
public static void Main()
{
Class1 a = new Class1("aaa");
Console.WriteLine(a.str);
Class2 b = new Class2(a);
Console.WriteLine(b.class1.str);
a.str = "123";
Console.WriteLine(a.str);
Console.WriteLine(b.class1.str);
b.class1.str = "bbb";
Console.WriteLine(a.str);
Console.WriteLine(b.class1.str);
}
}
public class Class1
{
public string str;
public Class1(string str)
{
this.str =str;
}
}
public class Class2
{
public Class1 class1;
public Class2(Class1 class1)
{
this.class1 = class1;
}
}
}
aaa
aaa
123
123
bbb
bbb
ref bys potreboval u hodnotovych typu (cisla a struktury, ale stejne by to nefungovalo jak chces) - to ze bys priradil hodnotu fieldu nejake tridy pres ref by bylo v tvem pripade k nicemu - ref bys vyuzil pouze pokud bys uvnitr nejake metody te sve tridy nejak menil tu hodnotu predavanou s ref a v miste volani bys pak dal chtel pracovat se zmenenou hodnotou..
aha, cize ref je napr. ak mas nejaku metodu, ktora ma neco urobit ale nebude mat navratovu hodnotu, ale prepise tu hodnotu v parametri
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku