我正在上课,所以我可以在扫雷中作弊,目前正在建立一些仿制药......但我有点卡住了。我想返回一个int,但我该如何转换呢?
public T ReadMemory<T>(uint adr)
{
if( address != int.MinValue )
if( typeof(T) == typeof(int) )
return Convert.ChangeType(MemoryReader.ReadInt(adr), typeof(T));
else
MessageBox.Show("Unknown read type");
}
答案 0 :(得分:7)
您需要将调用的返回值转换为ChangeType
return (T)Convert.ChangeType(MemoryReader.ReadInt(adr), typeof(T));
答案 1 :(得分:1)
尝试施放:
return (T)Convert.ChangeType(MemoryReader.ReadInt(adr), typeof(T));
答案 2 :(得分:1)
我试图修复编译器错误。但我不知道这是否正是你所寻找的。 p>
您必须将结果转换为T
return (T)Convert.ChangeType( MemoryReader.ReadInt( adr ), typeof( T ) );
并且您必须在条件失败时返回值:
return default( T );
这导致:
public T ReadMemory<T>( uint adr )
{
if ( adr != int.MinValue )
{
if ( typeof( T ) == typeof( int ) )
{
return (T)Convert.ChangeType( MemoryReader.ReadInt( adr ), typeof( T ) );
}
else
{
System.Windows.Forms.MessageBox.Show( "Unknown read type" );
}
}
return default( T );
}