私は次の情報源を持っています:
private T GetValue<T>(object value)
{
return (T)value;
}
private void button1_Click(object sender, EventArgs e)
{
Int64 integer = GetValue<Int64>(0);
}
したがって、定数0はInt32であり、汎用メソッドGetValueでInt64にキャストする必要があります。ただし、これにより、InvalidCastExceptionが発生します。
しかし、なぜ?
Int64をパラメーターとして使用して実行すると、正常に機能します。
private T GetValue<T>(object value)
{
return (T)value;
}
private void button1_Click(object sender, EventArgs e)
{
Int64 zero = 0;
Int64 integer = GetValue<Int64>(zero);
}
ジョンとブライアンに感謝します。私の最終的な(単純化された)解決策は次のようなものです。
private T GetValue<T>(object value)
{
return (T)Convert.ChangeType(defaultValue, typeof(T));
}
private void button1_Click(object sender, EventArgs e)
{
Int64 integer = GetValue<Int64>(0);
}