abstract class sample { public abstract TValue Value<TKey, TValue> (); class nested<T> : sample { struct holder<TKey, TValue> { public static TValue Val; } public override sealed TValue Value<TKey, TValue> () { return holder<TKey, TValue>.Val; } } public static void Main () { } }