using System; public class Element { public readonly T Item; public Element (T item) { this.Item = item; } public void GetItem (out T retval) { retval = Item; } public T GetItem (int a, ref T data) { return Item; } public void SetItem (T data) { } } public class Foo { Element element; public Node Test () { Node node = element.Item; element.GetItem (out node); element.SetItem (node); return element.GetItem (3, ref node); } public class Node { } } class X { public static void Main () { } }