无法从用法中推断出方法JsonHelper.FromJson <t>(字符串)的类型参数

时间:2018-04-19 09:41:20

标签: c# c#-4.0

我有这门课。

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("");

我有同样的错误。

可能出现什么问题?

1 个答案:

答案 0 :(得分:2)

您需要指定类似T的类型,以及它所抱怨的内容

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

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