C#Typecast通用ref参数

时间:2009-08-31 21:55:34

标签: c# generics

我怎样才能让它发挥作用?希望使用泛型键入100更新结果。有任何想法吗?当然这个功能并不完整,我只需要让结果功能正常工作,这样我就可以继续了。

    public static bool ReadMemory<T>(Process process, IntPtr address, ref T result)
    {
        Type objType = result.GetType();

        switch (objType.Name)
        {
            case "Int32":
                result = (T)100;
                return true;
            default:
                return false;
        }
    }

2 个答案:

答案 0 :(得分:1)

我实际上会重构这个并返回结果。如果switch或if / else锁定落到方法的底部,我会抛出异常。然后,您可以在客户端代码中捕获try / catch中的失败。

答案 1 :(得分:0)

你需要为类型指定它:

public static bool ReadMemory(Process process, IntPtr address, ref int result)
{
   result = 100;
   return true;
}

public static bool ReadMemory(Process process, IntPtr address, ref float result)
{
   result = 100.0f;
   return true;
}