无法从用法中推断方法 JsonHelper.FromJson<T>(string) 的类型参数

The type arguments for method JsonHelper.FromJson<T>(string) cannot be inferred from the usage

我有这个class。

public static class JsonHelper
{
    public static T[] FromJson<T>(string json)
    {
        Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>>(json);
        return wrapper.Items;
    }

    public static string ToJson<T>(T[] array)
    {
        Wrapper<T> wrapper = new Wrapper<T>();
        wrapper.Items = array;
        return JsonUtility.ToJson(wrapper);
    }

    public static string ToJson<T>(T[] array, bool prettyPrint)
    {
        Wrapper<T> wrapper = new Wrapper<T>();
        wrapper.Items = array;
        return JsonUtility.ToJson(wrapper, prettyPrint);
    }

    [Serializable]
    private class Wrapper<T>
    {
        public T[] Items;
    }


}

我从调用中调用了其中一种方法作为

SqliteDatabase sqlDB = new SqliteDatabase (dbPath);
var result = sqlDB.ExecuteQuery ("SELECT * FROM CurrentClub WHERE id = 2");
var row = result.Rows [0];
List<Vector3> BLEBridge.club3Dpts = JsonHelper.FromJson(row ["Club3DPoints"].ToString ());

我有错误

error CS0411: The type arguments for method `JsonHelper.FromJson<T>(string)' cannot be inferred from the usage. Try specifying the type arguments explicitly

连我都改成了

List<Vector3> BLEBridge.club3Dpts = JsonHelper.FromJson("");

我也有同样的错误。

有什么问题吗?

您需要像下面那样指定类型 T,这就是它所抱怨的

 Vector3[] BLEBridge.club3Dpts = JsonHelper.FromJson<Vector3>(row ["Club3DPoints"].ToString ());

查看你的方法签名 T[] FromJson<T>(string json) 因为你试图映射到 List<Vector3> 你应该指定类型 Vector3