gpt4 book ai didi

c# - 转换 Dictionary 时出现显式转换运算符错误

转载 作者:行者123 更新时间:2023-11-30 22:18:34 25 4
gpt4 key购买 nike

用户定义的转换必须与封闭类型相互转换。

尝试转换 Dictionary<string,string> 时出现问题.这可能吗?

下面是我的代码。

    using Newtonsoft.Json;

public static implicit operator Dictionary<string, string>(string jsonString)
{
return JsonConvert.DeserializeObject<Dictionary<string, string>>(jsonString); ;
}

public static implicit operator string(Dictionary<string, string> dict)
{
return JsonConvert.SerializeObject(dict);
}

这是否意味着我应该将这两个方法写在Dictionary中?类(class)?如果是这样,是否无法将字符串转换为 Dictionary ?感谢您的帮助。

最佳答案

您不能为 Dictionary<string, string> 定义额外的转换运算符或 string如果它们不与您在其中定义运算符的类型进行转换,则与您无法为这些类型声明其他方法的方式相同。

您需要将这些转换定义为普通的静态实用方法,或者您可以定义一个派生自 Dictionary<string, string> 的类并在那里定义运算符:

public class StringDictionary : Dictionary<string, string>
{
public static implicit operator StringDictionary(string jsonString)
{
return JsonConvert.DeserializeObject<StringDictionary>(jsonString);;
}

public static implicit operator string(StringDictionary dict)
{
return JsonConvert.SerializeObject(dict);
}
}

关于c# - 转换 Dictionary<string,string> 时出现显式转换运算符错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16014293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com