Code:
static void Main()
{
string myString = "original";
func(ref myString);
string mySecondString = "originalTwo";
funcTwo(mySecondString);
Console.WriteLine();
Bomb myBomb = new Bomb("tomahawk", "SQ101");
bombFunc(ref myBomb);
Console.ReadLine();
}
public static void bombFunc(ref Bomb par)
{
par.air = "airsabre";
par = new Bomb(); // <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<!!!
}
public static void func(ref string par)
{
par = "changed";
}
public static void funcTwo(string par)
{
par = "changedTwo";
}
Citat:
Passing value types by reference--as demonstrated above--is useful, but ref is also useful for passing reference types. This allows called methods to modify the object to which the reference refers because the reference itself is being passed by reference. The following sample shows that when a reference type is passed as a ref parameter, the object itself can be changed.
@android~paranoid hvala na linku pomoglo je kolko tolko. Prvi deo koda tu mi je sve jasno sta se desava ali mene buni samo ova crvena recenica i onaj deo koda kada saljem (MyBomb), a on onda uradi (par = new Bomb();), sta podrazumeva pod tim da je ceo objekat promenjen, jer ocigledno je da ne moram da ga saljem po referenci ako cu samo clanove da menjam, jer to moze i bez toga.
\\edit: kad sam procitao svoj text shvatio sam :)
[Ovu poruku je menjao Valerij Zajcev dana 18.09.2007. u 00:35 GMT+1]