我在VS2015上使用WPF并且之前没有说“Type'字符串'不是一个集合。”
但是在将VS2015升级到VS2017之后,如果我在xaml代码中使用它,现在它在错误列表面板中说“Type'Strings'不是一个集合”。
我想在Project属性中跳过警告消息,但它没有任何错误代码。
(为了您的信息,编译和运行没有问题)
public class Strings
{
public string this[string key]
{
get
{
var result = LocalMsg.CommonManager.GetString(key);
if (result == null && LocalMsg.MyManager != null)
result = LocalMsg.MyManager.GetString(key);
if (result == null && LocalMsg.MySubManager != null)
result = LocalMsg.MySubManager.GetString(key);
if (result == null)
result = "Error";
else
result = result.Replace("<br>", Environment.NewLine);
return result;
}
}
}
public class LocalMsg : ObservableObjectBase<LocalMsg>
{
....
public Strings LocalText
{
get
{
return resources;
}
}
....
}
我在下面的链接中附加了项目示例代码。 https://www.dropbox.com/s/t7tiswp7hvvggl9/LocalMsgTest.zip?dl=0
答案 0 :(得分:1)
要被视为一个集合,您的类必须继承自ICollection
或ICollection<T>
,您必须实现适当的方法和属性。
public class Strings:ICollection<String>
{
}
ICollection<T>
Count
- 获取ICollection中包含的元素数。IsReadOnly
- 获取一个值,指示ICollection是否为只读。Add(T)
- 将项目添加到ICollection。Clear()
- 从ICollection中删除所有项目。Contains(T)
- 确定ICollection是否包含特定值。CopyTo(T[], Int32)
- 从特定的数组索引开始,将ICollection的元素复制到数组。GetEnumerator()
- 返回循环访问集合的枚举器。(继承自IEnumerable。)Remove(T)
- 从ICollection中删除第一次出现的特定对象。