C# Console.WriteLine()函数中{}输出格式详解

格式项都采用如下形式:

{index[,alignment][:formatString]}   

 

其中"index"指索引占位符,这个肯定都知道;

",alignment"按字面意思显然是对齐方式,","为标记;

":formatString"就是对输出格式的限定,以":"为标记。

 

alignment:可选,是一个带符号的整数,指示首选的格式化字段宽度。如果对齐值小于格式化字符串的长度,对齐会被忽略,并且使用格式化字符串的长度作为字段宽度。如果对齐为正数,字段的格式化数据为右对齐;如果对齐为负数,字段的格式化数据为左对齐。如果需要填充,则使用空白。如果指定对齐,就需要使用逗号。

 

formatString:由标准或自定义格式说明符组成.

 

下表是从网上得来:

 

字符

说明

示例

输出

C

         货币

string.Format("{0:C3}", 2)

2.000

D

       十进制

string.Format("{0:D3}", 2)

002

E

    科学计数法

1.20E+001

1.20E+001

G

        常规

string.Format("{0:G}", 2)

2

N

 用分号隔开的数字

string.Format("{0:N}", 250000)

250,000.00

X

      十六进制

string.Format("{0:X000}", 12)

C

 

 

string.Format("{0:000.000}", 12.2)

012.200

 

 

Specifier

Type

Format

Output
(Passed
Double 1.42)

Output
(Passed
Int -12400)

c

Currency

{0:c}

1.42

-12,400

d

Decimal (Whole number)

{0:d}

System.
FormatException

-12400

e

Scientific

{0:e}

1.420000e+000

-1.240000e+004

f

Fixed point

{0:f}

1.42

-12400.00

g

General

{0:g}

1.42

-12400

n

Number with commas for thousands

{0:n}

1.42

-12,400

r

Round trippable

{0:r}

1.42

System.
FormatException

x

Hexadecimal

{0:x4}

System.
FormatException

cf90

 

 

Specifier

Type

Example (Passed System.DateTime.Now)

d

Short date

10/12/2002

D

Long date

December 10, 2002

t

Short time

10:11 PM

T

Long time

10:11:29 PM

f

Full date & time

December 10, 2002 10:11 PM

F

Full date & time (long)

December 10, 2002 10:11:29 PM

g

Default date & time

10/12/2002 10:11 PM

G

Default date & time (long)

10/12/2002 10:11:29 PM

M

Month day pattern

December 10

r

RFC1123 date string

Tue, 10 Dec 2002 22:11:29 GMT

s

Sortable date string

2002-12-10T22:11:29

u

Universal sortable, local time

2002-12-10 22:13:50Z

U

Universal sortable, GMT

December 11, 2002 3:13:50 AM

Y

Year month pattern

December, 2002

 

 

Specifier

Type

Example

Example Output

dd

Day

{0:dd}

10

ddd

Day name

{0:ddd}

Tue

dddd

Full day name

{0:dddd}

Tuesday

f, ff, ...

Second fractions

{0:fff}

932

gg, ...

Era

{0:gg}

A.D.

hh

2 digit hour

{0:hh}

10

HH

2 digit hour, 24hr format

{0:HH}

22

mm

Minute 00-59

{0:mm}

38

MM

Month 01-12

{0:MM}

12

MMM

Month abbreviation

{0:MMM}

Dec

MMMM

Full month name

{0:MMMM}

December

ss

Seconds 00-59

{0:ss}

46

tt

AM or PM

{0:tt}

PM

yy

Year, 2 digits

{0:yy}

02

yyyy

Year

{0:yyyy}

2002

zz

Timezone offset, 2 digits

{0:zz}

-05

zzz

Full timezone offset

{0:zzz}

-05:00

:

Separator

{0:hh:mm:ss}

10:43:20

/

Separator

{0:dd/MM/yyyy}

10/12/2002

 

示例:

 

// Console.WriteLine 中各种数据格式的输出

            Console.WriteLine("{0, 8 :C}", 2);     // $2.00

            Console.WriteLine("{0, 8 :C3}", 2);    // $2.000

            Console.WriteLine("{0 :D3}", 2);       // 002

            Console.WriteLine("{0 :E}", 2);        // 2.000000E+000

            Console.WriteLine("{0 :G}", 2);        // 2

            Console.WriteLine("{0 :N}", 2500000.00);    // 2,500,00.00

            Console.WriteLine("{0 :x4}", 12);      // 000c

            Console.WriteLine("{0, 2 :x}", 12);    //  c

            Console.WriteLine("{0 :000.000}", 12.23);   // 012.230

            Console.WriteLine("{0 :r}", 15.62);    // 15.62

            Console.WriteLine("{0 :d}"System.DateTime.Now);    // 2012-3-27

            Console.WriteLine("{0 :D}"System.DateTime.Now);    // 2012年3月27

 

            Console.WriteLine("{0 :t}"System.DateTime.Now);    // 11:43

            Console.WriteLine("{0 :T}"System.DateTime.Now);    // 11:43:34

 

            Console.WriteLine("{0 :f}"System.DateTime.Now);    // 2012年3月27 11:43

            Console.WriteLine("{0 :F}"System.DateTime.Now);    // 2012年3月27 11:43:34

 

            Console.WriteLine("{0 :g}"System.DateTime.Now);    // 2012-3-27 11:43

            Console.WriteLine("{0 :G}"System.DateTime.Now);    // 2012-3-27 11:43:34

 

            Console.WriteLine("{0 :M}"System.DateTime.Now);    // 3月27

            Console.WriteLine("{0 :r}"System.DateTime.Now);// Tue, 27 Mar 2012 11:43:34 GMT

            Console.WriteLine("{0 :s}"System.DateTime.Now);    // 2012-03-27T11:43:34

            Console.WriteLine("{0 :u}"System.DateTime.Now);    // 2012-03-27 11:43:34Z

            Console.WriteLine("{0 :U}"System.DateTime.Now);    // 2012年3月27 3:43:34

            Console.WriteLine("{0 :Y}"System.DateTime.Now);    // 20123

 

            Console.WriteLine("{0 :dd}"System.DateTime.Now);   // 27

            Console.WriteLine("{0 :ddd}"System.DateTime.Now);  // 

            Console.WriteLine("{0 :dddd}"System.DateTime.Now); // 星期二

 

            Console.WriteLine("{0 :f}"System.DateTime.Now);    // 2012年3月27 11:46

            Console.WriteLine("{0 :ff}"System.DateTime.Now);   // 18

            Console.WriteLine("{0 :fff}"System.DateTime.Now);  // 187

            Console.WriteLine("{0 :ffff}"System.DateTime.Now); // 1875

            Console.WriteLine("{0 :fffff}"System.DateTime.Now); // 18750

 

            Console.WriteLine("{0 :gg}"System.DateTime.Now);   // 公元

            Console.WriteLine("{0 :ggg}"System.DateTime.Now);  // 公元

            Console.WriteLine("{0 :gggg}"System.DateTime.Now); // 公元

            Console.WriteLine("{0 :ggggg}"System.DateTime.Now);     // 公元

            Console.WriteLine("{0 :gggggg}"System.DateTime.Now);    // 公元

 

            Console.WriteLine("{0 :hh}"System.DateTime.Now);   // 11

            Console.WriteLine("{0 :HH}"System.DateTime.Now);   // 11

 

            Console.WriteLine("{0 :mm}"System.DateTime.Now);   // 50

            Console.WriteLine("{0 :MM}"System.DateTime.Now);   // 03

 

            Console.WriteLine("{0 :MMM}"System.DateTime.Now);  // 三月

            Console.WriteLine("{0 :MMMM}"System.DateTime.Now); // 三月

 

            Console.WriteLine("{0 :ss}"System.DateTime.Now);   // 43

            Console.WriteLine("{0 :tt}"System.DateTime.Now);   // 上午

 

            Console.WriteLine("{0 :yy}"System.DateTime.Now);   // 12

            Console.WriteLine("{0 :yyyy}"System.DateTime.Now); // 2012

            Console.WriteLine("{0 :zz}"System.DateTime.Now);   // +08

            Console.WriteLine("{0 :zzz}"System.DateTime.Now);  // +08:00

            Console.WriteLine("{0 :hh:mm:ss}"System.DateTime.Now);  // 114334

            Console.WriteLine("{0 :dd/MM/yyyy}"System.DateTime.Now); // 27-03-2012

        

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
两个现实的例子: 1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时候就会产生一定的“回音”反射,然后把“回音”进行处理就可以显示出内脏的情况了(我不是医生也不是声学专家,不知说得是否准确^_^)。 2、地球内部结构:地球的内部结构大体可以分为三层:地壳、地幔和地核。地壳是固体,地核是液体,地幔则是半液半固的结构(学地理的内容,大家还记得吧?)。如何在地球表面不用深入地球内部就知道其内部的构造呢?对,向地球发射“地震波”,“地震波”分两种一种是“横波”,另一种是“纵波”。“横波”只能穿透固体,而“纵波”既可穿透固体又可以穿透液体。通过在地面对纵波和横波的反回情况,我们就可以大体断定地球内部的构造了。 大家注意到这两个例子的共同特点,就是从一个对象的外部去了解对象内部的构造,而且都是利用了波的反射功能。在.NET的反射也可以实现从对象的外部来了解对象(或程序集)内部结构的功能,哪怕你不知道这个对象(或程序集)是个什么东西,另外.NET的反射还可以运态创建出对象并执行它其的方法。 反射是.NET的重要机制,通过反射,可以在运行时获得程序或程序集每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。有了反射,即可对每一个类型了如指掌。另外我还可以直接创建对象,即使这个对象的类型在编译时还不知道。 反射的用途: (1)使用Assembly定义和加载程序集,加载在程序集清单列出模块,以及从此程序集查找类型并创建该类型的实例。 (2)使用Module了解包含模块的程序集以及模块的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。 (3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。 (4)使用MethodInfo了解方法的名称、返回类型、参数、访问修饰符(如pulic 或private)和实现详细信息(如abstract或virtual)等。 (5)使用FiedInfo了解字段的名称、访问修饰符(如public或private)和实现详细信息(如static)等,并获取或设置字段值。 (6)使用EventInfo了解事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等,添加或移除事件处理程序。 (7)使用PropertyInfo了解属性的名称、数据类型、声明类型、反射类型和只读或可写状态等,获取或设置属性值。 (8)使用ParameterInfo了解参数的名称、数据类型、是输入参数还是输出参数,以及参数在方法签名的位置等。 反射用到的命名空间: System.Reflection System.Type System.Reflection.Assembly 反射用到的主要类: System.Type 类--通过这个类可以访问任何给定数据类型的信息。 System.Reflection.Assembly类--它可以用于访问给定程序集的信息,或者把这个程序集加载到程序。 System.Type类: System.Type 类对于反射起着核心的作用。但它是一个抽象的基类,Type有与每种数据类型对应的派生类,我们使用这个派生类的对象的方法、字段、属性来查找有关该类型的所有信息。 获取给定类型的Type引用有3种常用方式: ●使用 C# typeof 运算符。 Type t = typeof(string); ●使用对象GetType()方法。 string s = "grayworm"; Type t = s.GetType(); ●还可以调用Type类的静态方法GetType()。 Type t = Type.GetType("System.String"); 上面这三类代码都是获取string类型的Type,在取出string类型的Type引用t后,我们就可以通过t来探测string类型的结构了。 string n = "grayworm"; Type t = n.GetType(); foreach (MemberInfo mi in t.GetMembers()) { Console.WriteLine("{0}/t{1}",mi.MemberType,mi.Name); } Type类的属性: Name 数据类型名 FullName 数据类型的完全限定名(包括命名空间名) Namespace 定义数据类型的命名空间名 IsAbstract 指示该类型是否是抽象类型 IsArray 指示该类型是否是数组 IsClass 指示该类型是否是类 IsEnum 指示该类型是否是枚举 IsInterface 指示该类型是否是接口 IsPublic 指示该类型是否是公有的 IsSealed 指示该类型是否是密封类 IsValueType 指示该类型是否是值类型 Type类的方法: GetConstructor(), GetConstructors():返回ConstructorInfo类型,用于取得该类的构造函数的信息 GetEvent(), GetEvents():返回EventInfo类型,用于取得该类的事件的信息 GetField(), GetFields():返回FieldInfo类型,用于取得该类的字段(成员变量)的信息 GetInterface(), GetInterfaces():返回InterfaceInfo类型,用于取得该类实现的接口的信息 GetMember(), GetMembers():返回MemberInfo类型,用于取得该类的所有成员的信息 GetMethod(), GetMethods():返回MethodInfo类型,用于取得该类的方法的信息 GetProperty(), GetProperties():返回PropertyInfo类型,用于取得该类的属性的信息 可以调用这些成员,其方式是调用Type的InvokeMember()方法,或者调用MethodInfo, PropertyInfo和其他类的Invoke()方法。 查看类的构造方法: NewClassw nc = new NewClassw(); Type t = nc.GetType(); ConstructorInfo[] ci = t.GetConstructors(); //获取类的所有构造函数 foreach (ConstructorInfo c in ci) //遍历每一个构造函数 { ParameterInfo[] ps = c.GetParameters(); //取出每个构造函数的所有参数 foreach (ParameterInfo pi in ps) //遍历并打印所该构造函数的所有参数 { Console.Write(pi.ParameterType.ToString()+" "+pi.Name+","); } Console.WriteLine(); }
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值