C#类中Int转String方法报错CS0029,求解决方案
解决CS0029错误:无法隐式转换int到string的问题
嘿,我一眼就发现问题所在啦!你碰到的CS0029错误,本质是无法隐式将int类型转换为string类型,咱们来拆解代码里的问题:
在你的Main方法中,这行代码是报错的核心:
string n = Calculator.WriteNumber(53 + 28);
Calculator.WriteNumber()方法的返回值是int类型,但你却试图把它赋值给一个string类型的变量n。C#是强类型语言,这种跨类型的隐式转换是不被允许的,所以编译器直接抛出了错误。
两种简单的解决办法:
方法1:匹配变量类型与方法返回值
既然WriteNumber()返回的是int,那直接把变量n的类型改成int就好,Console.WriteLine()可以直接输出int类型的值:
using System; namespace CalculatorTest { class Calculator { public static string WriteText(string s) { return s; } public static int WriteNumber(int n) { return n; } } class Program { public static void Main(string[] args) { string s = Calculator.WriteText("Hello world!"); Console.WriteLine(s); // 将变量类型改为int,匹配方法返回值 int n = Calculator.WriteNumber(53 + 28); Console.WriteLine(n); Console.Read(); } } }
方法2:主动将int转换为string
如果你确实需要把结果存储为string类型,可以通过ToString()方法把int结果显式转换为string:
using System; namespace CalculatorTest { class Calculator { public static string WriteText(string s) { return s; } public static int WriteNumber(int n) { return n; } } class Program { public static void Main(string[] args) { string s = Calculator.WriteText("Hello world!"); Console.WriteLine(s); // 调用ToString()将int转换为string string n = Calculator.WriteNumber(53 + 28).ToString(); Console.WriteLine(n); Console.Read(); } } }
这两种方法都能快速解决你的CS0029错误,选哪种取决于你实际的需求哦!
内容的提问来源于stack exchange,提问作者user8405
相关产品推荐
相关产品推荐

