/* http://stackoverflow.com/questions/2229084/c-sharp-generic-interface-specialization */
using System;
public class Program
{
public static void Main()
IStorage i = new Storage();
i.Store("somestring"); // Prints Generic
i.Store(1); // Prints Generic
Storage s = (Storage)i;
s.Store("somestring"); // Prints Generic
s.Store(1); // Prints Specific
}
public interface IStorage
void Store<T>(T data);
public class Storage : IStorage
public void Store<T>(T data)
Console.WriteLine("Generic");
public void Store(int data)
Console.WriteLine("Specific");