struct MyStruc
{ public string Name;
public string Data;
public MyStruc(string name, string data)
{ Name = name;
Data = data;
}
public override string ToString()
{ return Name + ":" + Data;
}
}
class MyClass
{ public string Name;
public string Data;
public MyClass(string name, string data)
{ Name = name;
Data = data;
}
public override string ToString()
{ return Name + ":" + Data;
}
}
static void Func1(MyClass c)
{ c.Data = "F1";
}
static void Func2(MyClass c)
{ MyClass c2 = new MyClass("Foo", "F2"); c = c2;
}
static void Func3(ref MyClass c)
{ c.Data = "F3";
}
static void Func4(ref MyClass c)
{ MyClass c2 = new MyClass("Foo", "F4"); c = c2;
}
static void Func5(MyStruc s)
{ s.Data = "F5";
}
static void Func6(MyStruc s)
{ MyStruc s2 = new MyStruc("Bar", "F6"); s = s2;
}
static void Func7(ref MyStruc s)
{ s.Data = "F7";
}
static void VarTest()
{ MyClass c = new MyClass("Init", "Null"); Func1(c);
Console.WriteLine("Q1=" + c.ToString()); Func2(c);
Console.WriteLine("Q2=" + c.ToString()); Func3(ref c);
Console.WriteLine("Q3=" + c.ToString()); Func4(ref c);
Console.WriteLine("Q4=" + c.ToString()); MyStruc s = new MyStruc("Init", "Null"); Func5(s);
Console.WriteLine("Q5=" + s.ToString()); Func6(s);
Console.WriteLine("Q6=" + s.ToString()); Func7(ref s);
Console.WriteLine("Q7=" + s.ToString()); Console.Read();
}