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();
}