这个.net窗体程序的bug怎么修

img


无法将类型string隐式转换为什么的,还有最后启动,就会变成这个样子我不知道怎么改,哪位给看看急需。显示错误为CS0029:无法将类型string隐式转换为System.Collection.ObjectModel.ReadOnlyCollection《string》

改成如下试试:


ReadOnlyCollection<string> pinyin = new ReadOnlyCollection<string>(chineseChar.Pinyins);

说明:需要通过ReadOnlyCollection的构造函数来给它进行初始化。
测试代码如下:

//--------------------------------------------------------
/// (1) 将List<string> 赋值给 ReadOnlyCollection<string>
List<string> dinosaursList = new List<string>();

dinosaursList.Add("Tyrannosaurus");
dinosaursList.Add("Amargasaurus");
dinosaursList.Add("Deinonychus");
dinosaursList.Add("Compsognathus");

ReadOnlyCollection<string> readOnlyDinosaurs =
    new ReadOnlyCollection<string>(dinosaursList);

Console.WriteLine();
foreach (string dinosaur in readOnlyDinosaurs)
{
    Console.WriteLine(dinosaur);
}

//--------------------------------------------------------
/// (2) 将string[] 赋值给 ReadOnlyCollection<string>
string[] dinosaursArray = dinosaursList.ToArray();

ReadOnlyCollection<string> readOnlyDinosaursTwo =
    new ReadOnlyCollection<string>(dinosaursArray);

Console.WriteLine();
foreach (string dinosaur in readOnlyDinosaursTwo)
{
    Console.WriteLine(dinosaur);
}

bug没了,但是还是显示不出来结果

img

你定义的这个ChineseChar类,你写的是string[]数组类型吧!需要改成ReadOnlyCollection类型,一个方法是去ChineseChar类改,一个方法如下:

ReadOnlyCollection pinyin = new ReadOnlyCollection(chineseChar.Pinyins);

类型错了,改这个ReadOnlyCollection pinyin = new ReadOnlyCollection(chineseChar.Pinyins);
朋友你的报错解决了没


创建ChineseChar时你传入的是字节,但是声明ReadOnlyCollection数组时却是声明string类型,类型不匹配,你把39行代码<string>改成<char>试试,或者将38行代码改成字符串类型