 <p>This isn't possible, but your goal <em>may</em> be achievable with <a href="http://msdn.microsoft.com/en-us/library/85w54y0a.aspx" rel="nofollow">conversion operators</a>. It seems that what you're trying to do is make it possible to pass an <code>IView&lt;T&gt;</code> as the <code>T</code> object which it contains. You could write a base class like this:</p> <pre><code>public abstract class ViewBase&lt;T&gt; { public abstract T SomeParam { get; } public static implicit operator T(ViewBase&lt;T&gt; view) { return view.SomeParam; } } </code></pre> <p>Then, if you define a class like:</p> <pre><code>public class SomeView : ViewBase&lt;ISomeView&gt; { } </code></pre> <p>It can be accepted anywhere an <code>ISomeView</code> is expected:</p> <pre><code>ISomeView view = new SomeView(); </code></pre>