100165355.htm
来自「C#高级编程(第三版),顶死你们。。 。up」· HTM 代码 · 共 322 行 · 第 1/4 页
HTM
322 行
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><title>
8.1.2 格式化字符串
</title></head>
<body>
<div class="area">
<div class="col1">
<div class="lineBlue">
</div>
<!-- title -->
<div class="arcTitle">
<h1>
<a href="../16">
C#高级编程(第3版)【全文连载】
</a>
</h1>
<div style="text-align: center; font-size: 15px">
<a href="100165355.htm">
8.1.2 格式化字符串
</a>
</div>
<div style="text-align: center; font-size: 15px">
<a class="url" href="../../default.htm">http://book.csdn.net/</a>
2006-10-13 14:41:00
</div>
<div style="margin: 0px auto; width: 700px; border: solid 1px #0b5f98;">
<div style="float: left; width: 16px; background-color: #0b5f98; color: White; padding: 1px;">
图书导读
</div>
<div style="float: right; width: 670px; text-align: left; line-height: 16pt; padding-left: 2px">
<!--导读-->
<h1 id="divCurrentNode" style="color: #b83507; width: 100%; text-align: left; font-size: 12px; padding-left: 2px">当前章节:<a href='100165355.htm'><font color='red'>8.1.2 格式化字符串</font></a></h1>
<div id="divRelateNode" style="padding-left: 2px">
<div style='float:left;width:49%'>·<a href='100165352.htm'>7.4 小结</a></div><div style='float:right;width:49%'>·<a href='100165353.htm'>8.1 System.String类</a></div><div style='float:left;width:49%'>·<a href='100165354.htm'>8.1.1 创建字符串</a></div><div style='float:right;width:49%'>·<a href='100165356.htm'>8.2 正则表达式</a></div><div style='float:left;width:49%'>·<a href='100165357.htm'>8.3 小结</a></div><div style='float:right;width:49%'>·<a href='100165358.htm'>9.1 对象组</a></div></div>
</div>
</div>
</div>
<!-- main -->
<div id="main">
<div id="text"> <link href="css.css" rel="stylesheet" type="text/css" /><h3 style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 0cm; MARGIN-RIGHT: 0cm; FTEL: 8.15pt"><a ftel="_Toc507815066"><span lang="EN-US">8.1.2 </span></a><span style="FONT-FAMILY: 黑体">格式化字符串</span></h3>
<p class="MsoNormal" style="LINE-HEIGHT: 15pt"><a ftel="stringsformatting"><span style="FONT-FAMILY: 宋体">前面的代码示例中编写了许多类和结构,对这些类和结构执行</span><span lang="EN-US">ToString()</span></a><span style="FONT-FAMILY: 宋体">方法,都是为了能显示给定变量的内容。但是,用户常常希望以各种可能的方式显示变量的内容,在不同的文化或地区背景中有不同的格式。</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">基类</span><span lang="EN-US">System.DateTime</span><span style="FONT-FAMILY: 宋体">就是最明显的一个示例:可以把日期显示为</span><span lang="EN-US">14 February 2002</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">14 Feb 2002</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">2/14/02(</span><span style="FONT-FAMILY: 宋体">美国</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">、</span><span lang="EN-US">14/2/02(</span><span style="FONT-FAMILY: 宋体">英国</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">或</span><span lang="EN-US">14. February 2002(</span><span style="FONT-FAMILY: 宋体">德国</span><span lang="EN-US">)</span><span style="FONT-FAMILY: 宋体">。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 15pt"><span style="FONT-FAMILY: 宋体">同样,对于第</span><span lang="EN-US">3</span><span style="FONT-FAMILY: 宋体">章中编写的</span><span lang="EN-US">Vector</span><span style="FONT-FAMILY: 宋体">结构,执行</span><span lang="EN-US">Vector.ToString()</span><span style="FONT-FAMILY: 宋体">方法,是为了以</span><span lang="EN-US">(4, 56, 8)</span><span style="FONT-FAMILY: 宋体">格式显示矢量。编写矢量的另一个非常常用的方式是</span><span lang="EN-US">4i + 56j + 8k</span><span style="FONT-FAMILY: 宋体">。如果要使类的用户友好性比较高,就需要使用某些工具以用户希望使用的方式显示它们的字符串表示。</span><span lang="EN-US">.NET</span><span style="FONT-FAMILY: 宋体">运行库定义了一种标准方式:使用一个接口</span><span lang="EN-US">IFormattable</span><span style="FONT-FAMILY: 宋体">,本节的主题就是说明如何把这个重要特性添加到类和结构上。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 15pt"><span style="FONT-FAMILY: 宋体">在显示一个变量时,常常需要指定它的格式,此时我们经常调用</span><span lang="EN-US">Console.WriteLine()</span><span style="FONT-FAMILY: 宋体">方法。因此,我们把这个方法作为示例,但这里的讨论适用于格式化字符串的大多数情况。例如,如果要在列表框或文本框中显示一个变量的值,一般要使用</span><span lang="EN-US">String.Format()</span><span style="FONT-FAMILY: 宋体">方法来获得该变量的合适字符串表示,但实际上所用的格式说明符所需的格式与传递给</span><span lang="EN-US">Console.WriteLine()</span><span style="FONT-FAMILY: 宋体">的格式相同,因此本节把</span><span lang="EN-US">Console.WriteLine()</span><span style="FONT-FAMILY: 宋体">作为一个示例来说明。首先看看在为基本类型提供格式字符串时会发生什么,再看看如何把自己的类和结构的格式说明符拖动到过程中。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 15pt"><span style="FONT-FAMILY: 宋体">第</span><span lang="EN-US">2</span><span style="FONT-FAMILY: 宋体">章在</span><span lang="EN-US">Console.Write()</span><span style="FONT-FAMILY: 宋体">和</span><span lang="EN-US"> Console.WriteLine()</span><span style="FONT-FAMILY: 宋体">中使用了格式字符串:</span></p>
<p class="2" style="MARGIN-TOP: 8.15pt; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">double d = 13.45;</span></p>
<p class="2" style="MARGIN-LEFT: 21.45pt; FTEL: 18.45pt"><span lang="EN-US">int i = 45;</span></p>
<p class="2" style="MARGIN-TOP: 0cm; MARGIN-LEFT: 21.45pt; MARGIN-RIGHT: 0cm; FTEL: 18.45pt"><span lang="EN-US">Console.WriteLine("The double is {0,10:E} and the int contains {1}", d, i);</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 15pt"><span style="FONT-FAMILY: 宋体">格式字符串本身大都由要显示的文本组成,但只要有要格式化的变量,它在参数列表中的下标就必须放在括号中。在括号中还可以有与该项目的格式相关的其他信息,例如可以包含:</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; FTEL: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'"> </span></span><span style="FONT-FAMILY: 宋体">该项目要占用的字符数,这个信息的前面应有一个逗号,负值表示该项目应左对齐,正值表示该项目应右对齐。如果该项目占用的字符数比给定的多,其内容也会完整地显示出来。</span></p>
<p class="1" style="MARGIN-LEFT: 37.55pt; FTEL: -16.1pt"><span lang="EN-US">●<span style="FONT: 7pt 'Times New Roman'"> </span></span><span style="FONT-FAMILY: 宋体">格式说明符也可以显示出来。它的前面应有一个冒号,表示应如何格式化该项目。例如,把一个数字格式化为货币,或者以科学计数法显示。</span></p>
<p class="MsoNormal" style="LINE-HEIGHT: 15pt"><span style="FONT-FAMILY: 宋体">第</span><span lang="EN-US">2</span><span style="FONT-FAMILY: 宋体">章简要介绍了数字类型的常见格式说明符,表</span><span lang="EN-US">8-3</span><span style="FONT-FAMILY: 宋体">再次引用该表。</span></p>
<p class="a5" style="MARGIN-TOP: 8.15pt"><span style="FONT-FAMILY: 黑体">表</span><span lang="EN-US"> 8-3</span></p>
<div align="center">
<table class="MsoNormalTable" style="MARGIN-LEFT: 24.1pt; WIDTH: 438.2pt; BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BORDER-COLLAPSE: collapse; BORDER-BOTTOM-STYLE: none" cellspacing="0" cellpadding="0" width="584" border="1">
<tbody>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 9.9pt; BORDER-LEFT-WIDTH: 1pt; BORDER-LEFT-COLOR: windowtext; PADDING-BOTTOM: 0cm; WIDTH: 47.55pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="63">
<p class="a2"><span style="FONT-FAMILY: 黑体">格式符</span></p>
</td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 9.9pt; BORDER-LEFT-WIDTH: 1pt; BORDER-LEFT-COLOR: windowtext; PADDING-BOTTOM: 0cm; WIDTH: 85.6pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="114">
<p class="a2"><span style="FONT-FAMILY: 黑体">应</span><span lang="EN-US" style="FONT-FAMILY: 'Times New Roman'"> </span><span style="FONT-FAMILY: 黑体">用</span></p>
</td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 9.9pt; BORDER-LEFT-WIDTH: 1pt; BORDER-LEFT-COLOR: windowtext; PADDING-BOTTOM: 0cm; WIDTH: 123.05pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid" valign="top" width="164">
<p class="a2"><span style="FONT-FAMILY: 黑体">含</span><span lang="EN-US" style="FONT-FAMILY: 'Times New Roman'"> </span><span style="FONT-FAMILY: 黑体">义</span></p>
</td>
<td style="PADDING-RIGHT: 9.9pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 182pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none" valign="top" width="243">
<p class="a2"><span style="FONT-FAMILY: 黑体">示</span><span lang="EN-US" style="FONT-FAMILY: 'Times New Roman'"> </span><span style="FONT-FAMILY: 黑体">例</span></p>
</td>
</tr>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 47.55pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="63">
<p class="a4" style="MARGIN-LEFT: 0cm"><span lang="EN-US">C</span></p>
</td>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 9.9pt; PADDING-LEFT: 9.9pt; PADDING-BOTTOM: 0cm; WIDTH: 85.6pt; BORDER-TOP-STYLE: none; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BORDER-LEFT-STYLE: none" valign="top" width="114">
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?