0
Answer

Problem with specifying type arguments explicitly when using a delegate

Legion

Legion

14y
4.8k
1

I get the following compile time error from the code below: Error 1 The type arguments for method 'CompSchemaEngineV2.NullableDataReader.GetNullable<T>(int, CompSchemaEngineV2.NullableDataReader.Conversion<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.

I can't figure out whats causing it.  I've tried everything I and my friends can think of and I can't get it to work.  Suggestions?
public int GetInt32(int index)
{
   return sqlReader.GetInt32(index);
}
public Nullable<int> GetNullableInt32(int index)
{
   return GetNullable(index, GetInt32); //This line throws the error
}
private delegate T Conversion<T>(int ordinal);
private Nullable<T> GetNullable<T>(int ordinal,
Conversion<T> convert) where T : struct
{
   Nullable<T> nullable;
   if (sqlReader.IsDBNull(ordinal))
   {
      nullable =
null;
   }
   else
   {
      nullable = convert(ordinal);
   }
   return nullable;
}