私は簡単な方法を持っています:
public static T GetValue<T>(SqlDataReader reader, int columnIndex, T defaultValue = default(T))
{
return reader.IsDBNull(columnIndex) ? defaultValue : (T)reader[columnIndex];
}
そしてそれの使用法:
string s = SqlUtils.GetValue<string>(reader, nameOrd);
<string>
返されるパラメーターの型が文字列であることが使用法から明らかな場合、なぜ指定する必要があるのでしょうか? しかし、そうしないとコンパイラが文句を言うので、どうやら私はそうしなければなりませんThe type arguments cannot be inferred from the usage...
。私のロジックはどこで失敗しますか?