黑马程序员技术交流社区

标题: 在写数组突然忘记的一个小细节,但记不起是为什么了 [打印本页]

作者: 许大虾    时间: 2013-5-15 15:49
标题: 在写数组突然忘记的一个小细节,但记不起是为什么了
本帖最后由 许大虾 于 2013-5-15 22:53 编辑

以下是我写一个小程序,将数组中取出最大值
  1. int[] numbers = { 3, 5, 6, 37, 19, 98, 65, 34, 54, 43 };
  2. int max = numbers[0];
  3. for (int i = 1; i < numbers.Length; i++)
  4. {
  5. if (numbers[i] > max)
  6. {
  7. max = numbers[i];
  8. }
  9. }
  10. Console.WriteLine("max=" +max);
  11. Console.ReadKey();
  12. }
复制代码
最后输出的语句是
Console.WriteLine("max=" +max);
我写成了 Console.WriteLine("max=" max);  少了个加号  
就显示了这个错误,问下为什么呢?加号的作用是什么意思!~

之前有看过,但一直记不起来~

作者: 王靖远    时间: 2013-5-15 15:59
+是字符串连接符号啊。
作者: 8047107    时间: 2013-5-15 16:24
+是字符串连接符号啊。
作者: 周琪    时间: 2013-5-15 17:14
你说的这种情况下,+是做字符串的连接。你可以用反编译工具reflector看下(自己下一个免费的)。
在+连接字符串的时候,C#的Complier是把它转换成为了带两个参数的Concat()函数。这个函数可以反编译System.dll可以看到这个静态的带两个参数的方法
作者: 马炜亮    时间: 2013-5-15 21:44
当+号有一边是字符串时,就表示连接的意思。       暂时可以理解为Console.WriteLine()这个括号里的写法不符合C#的规定时就会报这个错误。等到后边学了方法你就明白根本原因了。
你这里可以用自己的 Console.WriteLine("max="+max);
或者用Console .WriteLine ("max={0}",max);都能输出你想要的东西。


作者: 许大虾    时间: 2013-5-15 22:52
马炜亮 发表于 2013-5-15 21:44
当+号有一边是字符串时,就表示连接的意思。       暂时可以理解为Console.WriteLine()这个括号里的写法不 ...

~谢谢 ~~~~~~~~




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2