织梦CMS - 轻松建站从此开始!

亚洲城

当前位置: 首页 > 影视综艺 >

C# 温故而知新无懈可击之高手如林演员表:Stream篇(三)

时间:2019-01-11 18:29来源:亚洲城 作者: 点击:
C# 温故而知新:Stream篇( 三 ) TextWriter 和 StreamWriter 目录: ? 为何介绍TextWriter? 就像上篇讲述的一样,对于重要的基础技术,我们一定要刨根问底,这样在面对将来可能很复杂的业务

C# 温故而知新:Stream篇(

TextWriter 和 StreamWriter

目录:

?

为何介绍TextWriter?

就像上篇讲述的一样,对于重要的基础技术,我们一定要刨根问底,这样在面对将来可能很复杂的业务或技术时才能游刃有余,

甚至可以创新出新的解决方案,言归正传,想了解StreamWriter 必须了解其父亲TextWriter的结构和使用方法。

那么微软为什么要创建立这个抽象类呢?看下图

  

的确可以这样理解C,C++ ,XAML,Html一切可以写在文本上写的语言都可以用Text这个词在抽象,(千万别小看记事本,它才是元老啊),

聪明的你想到了,今后我们可以自定义一些自己Writer类来实现我们特定的写功能。现在我们只要理解TextWriter是一个抽象的文本写入器,

可以在文本上写入我们想要的格式,可以通过微软派生类或着自定义派生类来实现TextWriter的功能。只要你有足够的想象力就能在创新

出一个新的派生类。

TextWriter的构造,常用属性和方法

以下是TextWriter构造函数:

和所有的抽象类一样,该类不能直接实例化,它有2个构造函数

特别我想说下第二个构造函数,大家发现这个构造有个IFomatProvider 类型的参数, 这个是什么东东?

IFormatProvider接口的简单介绍

其实IFormatProvider接口 从字面上就能理解了,一个格式化的提供者

大家记得我们常用的string.format(“{0:P}”,data);么? IFormatProvider在这里被隐式的调用了

关于隐式调用的各种方式,用个简单的例子向大家说明下:

//有关数字格式化隐性使用IFomatProvider的例子
#if true
//货币
Console.WriteLine(string.Format("显示货币格式{0:c3}",12));
//十进制
Console.WriteLine("显示货币十进制格式{0:d10}", 12);
//科学计数法
Console.WriteLine("科学计数法{0:e5}",12);
//固定点格式
Console.WriteLine("固定点格式 {0:f10}",12);
//常规格式
Console.WriteLine("常规格式{0:g10}",12);
//数字格式(用分号隔开)
Console.WriteLine("数字格式 {0:n5}:",666666666);
//百分号格式
Console.WriteLine("百分号格式(不保留小数){0:p0}",0.55);
//16进制
Console.WriteLine("16进制{0:x0}", 12);
// 0定位器 此示例保留5位小数,如果小数部分小于5位,用0填充
Console.WriteLine("0定位器{0:000.00000}",1222.133);
//数字定位器
Console.WriteLine("数字定位器{0:(#).###}", 0200.0233000);
//小数
Console.WriteLine("小数保留一位{0:0.0}", 12.222);
//百分号的另一种写法,注意小数的四舍五入
Console.WriteLine("百分号的另一种写法,注意小数的四舍五入{0:0%.00}", 0.12345);
Console.WriteLine("\n\n");
#endif

输出结果:

也就是说IFormatProvider 提供了一个格式化的工具

让我们通过NumberFormatInfo类来温故下:

这个密封类实现了IFormatProvider接口,主要实现了一个数字格式化的类,下面是一些规定的格式说明符:

c、C

 

货币格式。关联的属性包括:

 

d、D

 

十进制格式。

 

e、E

 

科学计数(指数)格式。

 

f、F

 

固定点格式。

 

g、G

 

常规格式。

 

n、N

 

数字格式。

 

p、P

 

百分比格式。

 

让我们用简单易懂的代码来实现下NumberFormatInfo 如何使用:

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
推荐内容