Implementing Nullable Types in Generic Interface

c#, exception, interface, reference, reference-type

Solution

I wouldn't really do this but it's probably the only way to get it to work.

public class MyWrapperClass<T> where T : struct 
{
    public Nullable<T> Item { get; set; }   
}

public class MyClass<T> where T : class 
{

}

Problem

So in a previous question I asked about implementing a generic interface with a public class and bingo, it works. However, one of the types I'm looking to pass in is one of the built in nullable types such as: int, Guid, String, etc. Here's my Interface: ``` public interface IOurTemplate<T, U> where T : class where U : class { IEnumerable<T> List(); T Get(U id); } ``` So when I implement this like so: ``` public class TestInterface : IOurTemplate<MyCustomClass, Int32> { public IEnumerable<MyCustomClass> List() { throw new NotImplementedException(); } public MyCustomClass Get(Int32 testID) { throw new NotImplementedException(); } } ``` I receive the error message: The type 'int' must be a reference type in order to use it as parameter 'U' in the generic type or method 'TestApp.IOurTemplate' I've tried to infer the type Int32?, but same error. Any ideas?

Original source