浅谈Console.WriteLine();

     今日看《老粱故事汇》,介绍日本已逝巨星高仓健,才初步对此人有所了解。老高一生演绎了许多经典的影幕形象,男主角都收获了真挚的爱情……可现实生活中,真实的老高,却一辈子只经历过一次婚姻,在离婚后终究不能从失败的婚姻中走出,最终孤老一生……所以,看事物,看人,不能光看表面,要有一双发现的眼睛,看到他的本质……

     借此机会,讲一个C#中用于输出的最常见不过的语句的一个注意事项……

谈到Console.WriteLine();我想大多数人会想到占位符,诚然,占位符的使用,对于输出一段字符串,起了莫大的方便。但诸位知不知道,其实输出语句Console.WriteLine()的核心原理就是用到了占位符,且听我慢慢道来……

举例:Console.WriteLine("我叫{0},今天{1}岁了,我的工资是{2}元。", name, age , salary);这是最简单的对占位符的使用,我想大家都会用。但如果这样呢???????Console.WriteLine("我叫"+name,"今天3岁了");这样输出的话语句有问题吗???????

答案是没有问题!!!下面将介绍输出的原理:

Console.WriteLine();输出的都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中占位符的值。所以从第二个参数开始,要不要这个参数输出,就是要看第一个参数中有无相对应的占位符。

如Console.WriteLine("我叫"+name,"今天3岁了");第二个参数为"今天3岁了",所以会去第一个参数中寻找占位符,但第一个参数中没有占位符,所以第二个参数就不会被输出,所以最终输出的结果为“我叫XXX”。

同理,Console.WriteLine("HelloWorld");因为就只有第一个参数,所以输出第一个参数中的内容,但没有第二个参数,所以就不会寻找第一个参数中有无占位符,也不会再继续输出内容。

上述输出的核心原理也很巧妙地解释了C#语言中的占位符。Console.WriteLine("我叫{0},今天{1}岁了,我的工资是{2}元。",
name, age , salary);输出的都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中占位符的值。所以从第二个参数开始,要不要这个参数输出,就是要看第一个参数中有无相对应的占位符。

Console.WriteLine();有多个参数时,输出的都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中的占位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。注意,Console.WriteLine();中有几个逗号就算几个参

时间: 2024-10-24 08:55:07

浅谈Console.WriteLine();的相关文章

从window.console&&console.log(123)浅谈JS的且运算逻辑(&&)

从window.console&&console.log(123)浅谈JS的且运算逻辑(&&) 作者:www.cnblogs.com  来源:www.cnblogs.com  发布日期:2015-03-01 一.JS的且运算记得最开始看到window.console&&console.log(123),当时知道能起什么作用但是没有深入研究,最近在研究后总算弄明白了.要理解这个,首先得明白三个知识点第一:短路原则这个大家都非常清楚的了,在做且运算的时候,“同真

浅谈算法和数据结构

: 一 栈和队列 http://www.cnblogs.com/yangecnu/p/Introduction-Stack-and-Queue.html 最近晚上在家里看Algorithems,4th Edition,我买的英文版,觉得这本书写的比较浅显易懂,而且“图码并茂”,趁着这次机会打算好好学习做做笔记,这样也会印象深刻,这也是写这一系列文章的原因.另外普林斯顿大学在Coursera 上也有这本书同步的公开课,还有另外一门算法分析课,这门课程的作者也是这本书的作者,两门课都挺不错的. 计算

浅谈委托和事件(一)

浅谈委托和事件(一) 关于委托和事件,可能是.NET或者说是面向对象编程语言中的一个比较重要又比较难以理解的概念.关于这一话题,园子里的人也写了很多文章,最经典的可能就是张子阳的C#中的委托和事件这两篇文章了,之前也看过MSDN 上的WebCast深入 "委托和事件".可能和很多人一样,刚开始读的时候,觉得很清楚,但是过了一段时间好像又忘记了委托和事件的区别,知道很久以前,在一次面试中我被问到委托和事件有什么区别,一下子就说不清了. 所以这里稍微理一下,也算是自己的一个总结.当然,还是

浅谈ThreadPool 线程池(引用)

出自:http://www.cnblogs.com/xugang/archive/2010/04/20/1716042.html 浅谈ThreadPool 线程池 相关概念: 线程池可以看做容纳线程的容器: 一个应用程序最多只能有一个线程池: ThreadPool静态类通过QueueUserWorkItem()方法将工作函数排入线程池: 每排入一个工作函数,就相当于请求创建一个线程: 线程池的作用: 线程池是为突然大量爆发的线程设计的,通过有限的几个固定线程为大量的操作服务,减少了创建和销毁线程

浅谈C#的转义字符

前言:小弟初来博客园,也只是一位.Net的初学者,先在培训结构学习.Net,望大家多多照顾.初来驾到,这是小弟的第一篇博客,浅谈一下C#中的转义字符,下面收集了一些C#中常见的转义字符,如总结的不全,请大家补充,在此谢过了!话不多说,进入正题. 首先,C#中的转义字符包括@和反斜线(\),这里具体说一下\转义.之所以用到转义字符,是因为一些字符在C#中有特殊的意义,这样,要用这些字符(比如输出)就会出问题,所以要用到转义字符. 先列举出小弟总结的转义字符,然后再具体讲解. 转义字符      

浅谈算法和数据结构(1):栈和队列

浅谈算法和数据结构(1):栈和队列 2014/11/03 ·  IT技术                                         · 2 评论                                      ·  数据结构, 栈, 算法, 队列 分享到: 60 SegmentFault D-Day 2015 北京:iOS 站 JDBC之“对岸的女孩走过来” CSS深入理解之relative HTML5+CSS3实现春节贺卡 原文出处: 寒江独钓   欢迎分享原创

浅谈C# 多态的魅力(虚方法,抽象,接口实现)

浅谈C# 多态的魅力(虚方法,抽象,接口实现) 分类:             asp.net             C#              2014-02-08 11:29     786人阅读     评论(0)     收藏     举报 浅谈C# 多态的魅力(虚方法,抽象,接口实现) 前言:我们都知道面向对象的三大特性:封装,继承,多态.封装和继承对于初学者而言比较好理解,但要理解多态,尤其是深入理解,初学者往往存在有很多困惑,为什么这样就可以?有时候感觉很不可思议,由此,面向

浅谈设计模式1-策略模式

对于大多数面向对象的初学者来说,将思维模式从面向过程转变过来是一个比较困难的过程.很多人在用面向对象语言编写程序的时候,依然会感觉自己在用面向过程的思维,笔者分享这篇文章的用意便是希望可以对大家有一些积极的影响. 阅读本文可以是没有接触设计模式,但需要一定的面向对象基础,至少简单理解封装,继承多态. 对于刚开始接触设计模式来说,一开始就说概念性的东西,很少能够理解.所以我们可以先跳过这些,通过一个小的程序场景来进行一个比较直观的认识. 模拟魂斗罗发射子&弹 相信大家小的时候玩过一款叫魂斗罗的游戏

浅谈.NET编译时注入(C#-->IL)

原文:浅谈.NET编译时注入(C#-->IL) .NET是一门多语言平台,这是我们所众所周知的,其实现原理在于因为了MSIL(微软中间语言)的一种代码指令平台.所以.NET语言的编译就分为了两部分,从语言到MSIL的编译(我喜欢称为预编译),和运行时的从MSIL到本地指令,即时编译(JIT).JIT编译分为经济编译器和普通编译器,在这里就不多说了,不是本文的重点.本文主要讨论下预编译过程中我们能做的改变编译情况,改变生成的IL,从编译前后看看微软C#3.0一些语法糖,PostSharp的静态注入