using System;
public class Test
{
public static void Main()
{
var x = new RType1();
Console.WriteLine(x.Value);
}
public class RType1
{
public string Value { get;set; }
public RType1()
{
Value = "Initial Value";
var r2 = new RType2();
r2.DoSomething(this);
}
}
public class RType2
{
public RType2()
{
}
public void DoSomething(RType1 r1)
{
r1.Value = "New Value";
}
}
}
dXNpbmcgU3lzdGVtOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciB4ID0gbmV3IFJUeXBlMSgpOwoJCUNvbnNvbGUuV3JpdGVMaW5lKHguVmFsdWUpOwoJfQoJCglwdWJsaWMgY2xhc3MgUlR5cGUxCgl7CgkJcHVibGljIHN0cmluZyBWYWx1ZSB7IGdldDtzZXQ7IH0KCQkKCQlwdWJsaWMgUlR5cGUxKCkKCQl7CgkJCVZhbHVlID0gIkluaXRpYWwgVmFsdWUiOwoJCQl2YXIgcjIgPSBuZXcgUlR5cGUyKCk7CgkJCXIyLkRvU29tZXRoaW5nKHRoaXMpOwoJCX0KCX0KCQoJcHVibGljIGNsYXNzIFJUeXBlMgoJewoJCXB1YmxpYyBSVHlwZTIoKQoJCXsKCQkJCgkJfQoJCQoJCXB1YmxpYyB2b2lkIERvU29tZXRoaW5nKFJUeXBlMSByMSkKCQl7CgkJCXIxLlZhbHVlID0gIk5ldyBWYWx1ZSI7CgkJfQoJfQp9