【发布时间】:2014-10-05 08:08:41
【问题描述】:
我是 C# 新手,需要一些帮助。如果有人能解释为什么会发生这种情况,而不仅仅是给我一个答案,那将不胜感激。
我收到以下错误消息:
无法将字符串隐式转换为 int
这是我的代码:
int[] arrayData = new int[12];
StreamReader scores = new StreamReader("scores.txt")
while (scores.Peek() != null)
{
arrayData[counter] = scores.ReadLine(); // <-- above error occurs here
counter = counter + 1;
}
scores.Close();
如果有人可以提供帮助,我还有另一个问题。
string x = …
int y = …
if (x > y) … // <-- below errors occurs here
错误信息:
运算符>不能应用于字符串和整数
【问题讨论】:
-
score数组的内容是字符串... 你需要在读取文件后考虑一些强制转换,然后再放入int数组。 -
A
string不是int,您无法比较它们或将一个值分配给另一个...如果您尝试将字符串 %&* 与 6 进行比较会发生什么?框架会做什么?为了从您的字符串中获取int,您必须使用int.Parse或int.TryParse对其进行解析,然后如果解析成功,您可以使用返回值 -
最好将帖子中的材料分成两个单独的问题。
-
离题建议:
StreamReader实现IDisposable。因此你应该把它放在usingblock:using (StreamReader scores = new StreamReader(…)) { /* use scores */; scores.Close(); }。这将确保即使在出现意外异常的情况下,当执行流离开该块时,流也会正确关闭/释放。 (不再需要对Close的显式调用,但这也没有什么坏处。) -
通常最好按照我惊恐的外星人的建议分开问题,但在这种情况下不要因为它实际上是同一个问题。这种令人难以置信的基本问题通常在 Stack Overflow 上并不受欢迎。拯救它的是你的陈述,即你对解决方案不太感兴趣,而对理解问题的本质更感兴趣。干得好。
标签: c# string int implicit-conversion