Visual Studio中C#代码出现string/int/char类型转换错误如何解决
报错根因
你遇到的所有类型转换报错核心是Console.WriteLine方法的重载匹配错误:
- C#的
Console.WriteLine没有支持直接传多个零散变量做拼接输出的重载,你用逗号分隔的多个参数被错误匹配到了其他重载(比如接收单个char/int的重载),才会触发int转char、string转int的类型不匹配报错。 - 额外说明:你第一行代码里直接传
numberArray数组对象,就算语法修复后直接输出也只会打印数组的类型名而非数组内的元素,如果你要输出数组的最大值,应该取numberArray[maximumIndex]才对,你原代码还重复拼接了一次maximumIndex,也可以同步修正。
修复方案
推荐两种常用的正确写法,二选一即可:
写法1:字符串插值(最简便,C# 6及以上版本支持)
在字符串前加$前缀,要插入的变量直接放在{}内即可:
Console.WriteLine($" The largest value in the array is {numberArray[maximumIndex]}, located at array index {maximumIndex}"); Console.WriteLine(" The numbers were: "); // 循环体建议加大括号,避免后续加代码时出现逻辑错误 for (int i = 0; i < numberArray.Length; i++) { Console.WriteLine($"{numberArray[i]} is {stringArray[i]}"); }
写法2:格式化字符串重载
使用Console.WriteLine的格式化标准重载,第一个参数是带占位符的模板,后面按顺序传对应参数:
Console.WriteLine(" The largest value in the array is {0}, located at array index {1}", numberArray[maximumIndex], maximumIndex); Console.WriteLine(" The numbers were: "); for (int i = 0; i < numberArray.Length; i++) { Console.WriteLine("{0} is {1}", numberArray[i], stringArray[i]); }
内容的提问来源于stack exchange,提问作者chpnr09
相关产品推荐
相关产品推荐

