A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡松涛 中级黑马   /  2012-9-10 17:46  /  2008 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            int code = (int)'a';
            Console.WriteLine("a->{0}" , code);
        }
    }
}
Console.WriteLine("a->{0}" , code);这一句,用逗号输出//a->97
Console.WriteLine("a->{0}" +code);用加号输出//a->{0}97
这2个效果为什么不一样,求解释下 谢谢!

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

4 个回复

倒序浏览
应该可以解释为占位符吧,比如这句Console.WriteLine("hello {0}",code);,其实在输出的时候就是将code变量的值放在{0}处。
+号就是拼接字符串

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
前者为使用占位符方式输出  占位符相当于挖了个坑  但还需要变量来填坑  后面为使用加号方式输出 当加号两边有一个为字符串时 整个表达式提升为字符串  所以才会有你的输出结果.把变量前面的字符串和后面的变量一起输出来了

评分

参与人数 1技术分 +1 收起 理由
郑文 + 1

查看全部评分

回复 使用道具 举报
WriteLine()方法重载中有一个是需要键入一个字符串string
还有一种方法重载中有一个是需要键入一个字符串string和任意个Param变量的。这种重载方法可以在字符串中使用占位符(也就是{0})来进行的。
例子中第一个是使用的上面第二中方法重载,使用占位符来进行输出。
第二个则是使用的字符串拼接进行输出。
由于使用的方法重载不同,所以产生的结果也不一样。
后者由于是字符串拼接,所以计算机没有把{0}视为占位符。所以就出现了那种结果
回复 使用道具 举报
第一种就是把变量的值填进占位符,所以输出a->97
第二种+使用的是字符串拼接,没有把{0}视为占位符,所以输出了a->{0}97,第二种要想输出a->97,把Console.WriteLine("a->{0}" +code);该成Console.WriteLine("a->" +code);就可以了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马