C#控制台应用中字符串数组无有效输出值问题排查
问题原因
C#中的string是具备值语义的不可变类型,你在初始化数组favorite时,只会把当时food存储的空字符串值复制到数组对应位置,不会和food变量建立绑定关联。后续你修改food的值时,只会改动food本身的存储内容,不会同步影响已经写入数组的值,所以最终输出favorite[0]时只会拿到初始化时的空字符串。
修复方案
你可以选择以下任意一种方式调整代码:
- 调整数组初始化时机,等拿到用户输入后再初始化数组:
Console.WriteLine("what is your favorite food?"); string food = Console.ReadLine(); string[] favorite = { food }; Console.WriteLine("Your favorite food is" + favorite[0]);
- 如果需要提前声明数组,拿到用户输入后手动更新数组对应位置的值:
string food = ""; string[] favorite = new string[1]; Console.WriteLine("what is your favorite food?"); food = Console.ReadLine(); favorite[0] = food; Console.WriteLine("Your favorite food is" + favorite[0]);
内容的提问来源于stack exchange,提问作者Chris Van Gewden
相关产品推荐
相关产品推荐

