C#ToString格式化输出、ToString重写等常用技巧总结

作者:小菜 更新时间:2025-02-27 点击数:
简介:ToString是在开发中最常用的操作,其作用是将其它类型以字符串类型表示。

例如:int i=2;i.ToString() //”2″Object o = ne

【菜科解读】

ToString是在开发中最常用的操作,其作用是将其它类型以字符串类型表示。

例如:

int i=2;i.ToString() //”2″Object o = new Object();o.ToString(); // 返回对象类型 System.Object

但是ToString也并非就这么简单。

因为ToString实现自Object类,而Object类是一切类的基类。

其它的类继承自Object,自然也就实现了ToString方法。

但是也可以重写ToString方法。

这也就衍生了其它的使用。

如果我们运用合理的话,将会使我们的开发非常的方便。

例如在开发中常用到的:

一.格式化输出,包含值类型,DateTime,GUID等,ToString()中接受参数,根据参数输出指定格式。

为实现格式化输出,在相关的类型中,重写ToString()为

public string ToString(string format) format 接收的参数,按指定的格式输出。

接受参数,如”C”,”D”,”E”,”等.public string ToString(string format,IFormatProvider provider) format 接收的参数,provider 为语言文化 如zh-CN 表示中文,en-US 表示美国英语

1.值类型,有时我们需要将值类型按照格式化输出,如输出为货币类型,我们只需要在ToString()中指定format为”C”,如果需要输出美元符号,可以将provider指定为en-US,例如float f = 2000.12f;f.ToString(“c”, CultureInfo.CreateSpecificCulture(“en-US”)); //输出为$2,000.12

值类型中常用的参数有:

格式化参数说明C货币符号D十进制表示,后跟数字表占位符 如25.ToString(“D3”) ; =025等价于 25.ToString(“000”);N易读性数值表示法 ,用逗号分隔大型数值。

如123456.ToString(“N”); //123,456P百分号X数值的16进制表示,X后跟数字表示用几位表示16进制。

如10.ToString(“X8”); //0000000AF指定小数点位置,四舍五入E指数表示,后跟数字表示小数点位数G数值的一般表示格式,后跟数字为截取数值长度

我们可以用代码测试格式化参数的使用,如下所示:

string[] formatTypes = {"C","N","P","F2","E2","G4"};double d = 1234.6789;foreach(string type in formatTypes) Console.WriteLine(string.Format("{0}.ToString(\"{1}\")={2}",d,type,d.ToString(type)));}

测试输出

2.DateTime,格式化参数主要用于日期时间的格式化输出。

DateTime.Now的默认格式为G。

参数有一部分区分大小写。

如下所示

使用的代码

string[] dateTimeTypes = { "d", "D", "f", "F", "g", "G", "m","M", "o", "O", "R","r", "s", "t", "T", "u", "U", "y","Y" };foreach(string type in dateTimeTypes) Console.WriteLine(string.Format("{0}:{1}", type.PadLeft(2,' '),DateTime.Now.ToString(type, CultureInfo.CreateSpecificCulture("zh-CN")))); //设置中国的日期格式}

测试输出:

3.GUID,GUID为在开发过程中常用来代表唯一标示。

在GUID 类型中,格式化参数主要有:

string[] guidTypes={"N","D","B","P","X"};foreach(string type in guidTypes) Console.WriteLine(string.Format("{0}",Guid.NewGuid().ToString(type).PadLeft(2,' ')));}

输出结果:

二.ToString的重写,C#中的任何对象都继承了ToString()方法。

在自定义类中如果需要重写ToString()方法,只需要在类中加入:public override string ToString(){}

而支持格式化参数的ToString()需要继承IFormattable接口,并实现public string ToString(string format,IFormatProvider provider)方法

下面以People,Peoples类说明如何重写ToString()。

本例只是说明ToString()的用法,所以并没有与数据库交互。

class People public People(string name,string address) this.Name = name; this.Address = address; public string Name { set; get; } public string Address { set; get; }class Peoples:IEnumerable,IFormattable private List

_peoples; private StringBuilder _sb; public Peoples() _peoples = new List

(); public void Add(People people) _peoples.Add(people); public IEnumerator GetEnumerator() foreach(People p in _peoples) yield return p; //重写ToString() public override string ToString() return GetContent(_peoples); //重写带参ToString() public string ToString(string format) return ToString(format, CultureInfo.CreateSpecificCulture("zh-CN")); //重写带参ToString() public string ToString(string format, IFormatProvider provider) IEnumerable

ps = _peoples; if (format.ToUpperInvariant() == "B") ps = from p in _peoples where p.Address == "北京" select p; else if (format.ToUpperInvariant() == "S") ps = from p in _peoples where p.Address == "上海" select p; return GetContent(ps); private string GetContent(IEnumerable

peoples) _sb = new StringBuilder(); foreach(People p in peoples) _sb.AppendLine(string.Format("{0}:{1}", p.Name, p.Address)); return _sb.ToString();static void Main(string[] args) Peoples peoples = new Peoples(){new People("zhangsan","北京"),new People("lisi","上海"),new People("wangwu","北京"),new People("naliu","北京")}; Console.WriteLine("本站会员有:"); Console.WriteLine(peoples.ToString()); Console.WriteLine("北京的会员有:"); Console.WriteLine(peoples.ToString("B")); Console.WriteLine("上海的会员有:"); Console.WriteLine(peoples.ToString("S")); Console.ReadLine();}

输出结果:

C#ToString,格式化,输出,、,ToString,重

重装系统格式科普指南:轻松掌握常见重装步骤及注意事项

简介:重装系统是计算机维护与优化的重要手段之一,它不仅能解决很多系统问题,还能提升设备的运行速度和效率。

无论是个人用户还是专业技术人员,掌握重装系统的基本步骤和注意事项都是非常有价值的技能。

本文将通过详细的步骤指导和实用建议,帮助读者轻松掌握重装系统的方法与技巧。

工具原料:系统版本:Windows 11、macOS Monterey、Android 12、iOS 15品牌型号:Dell XPS 13 (9310)、MacBook Air (M1, 2021)、Samsung Galaxy S21、Apple iPhone 13软件版本:Rufus 3.18(用于创建可启动USB驱动器)、Time Machine(用于Mac数据备份)、Samsung Smart Switch(用于安卓数据转移)一、重装Windows系统步骤与注意事项1、备份数据:在开始重装系统之前,确保备份重要文件和数据。

可以使用外部硬盘、云存储或Windows自带的文件历史记录功能进行备份。

2、创建启动盘:下载Windows 11的ISO文件,使用Rufus软件创建一个可启动的USB驱动器。

插入U盘,选择ISO文件,并开始创建。

3、进入BIOS/UEFI:重启电脑,进入BIOS/UEFI设置(通常通过按Del、F2或F12键)。

确保设置USB为启动优先级。

4、启动安装程序:从USB启动电脑,进入Windows安装界面。

选择语言和键盘布局后,点击“安装现在”。

5、选择安装类型:选择“自定义”安装类型以全新安装Windows。

根据需要格式化硬盘分区。

6、完成安装:按照向导完成安装过程,安装完成后,进行驱动程序和软件更新,确保系统稳定。

二、重装macOS系统步骤与注意事项1、备份数据:使用Time Machine对Mac进行数据备份,确保所有重要文件安全存储在外部设备上。

2、创建可启动安装盘:从App Store下载macOS Monterey安装文件,使用命令行创建可启动USB驱动盘。

3、进入恢复模式:重启Mac,按住Command + R键,进入恢复模式。

4、抹掉硬盘:选择“磁盘工具”,抹掉Macintosh HD,确保删除旧系统文件。

5、重新安装macOS:选择“重新安装macOS Monterey”,从USB安装新系统,按照步骤完成安装。

三、重装移动设备系统步骤与注意事项1、备份数据:使用Google云端备份(安卓)或iCloud(苹果)确保数据完整备份。

2、安卓系统重装:通过设备设置中的“重置出厂设置”选项,删除所有数据并重装系统。

使用三星的Smart Switch可以恢复备份。

3、iOS系统重装:通过iTunes或Finder连接iPhone,选择“恢复iPhone”进行完全重装。

拓展知识:1、BIOS与UEFI:BIOS(Basic Input/Output System)和UEFI(Unified Extensible Firmware Interface)是启动程序的重要组成部分,许多新电脑逐步采用UEFI,它提供了更快的启动时间和更好的安全性。

2、数据备份的重要性:在重装系统前备份数据是避免数据丢失的重要步骤。

无论是个人文件还是应用数据,都应妥善备份,以备后用。

3、更新驱动程序:新系统安装后,驱动程序可能需要更新以确保硬件正常工作。

利用Windows Update、Mac App Store或设备官方网站进行更新。

总结:重装系统虽然是一个需要谨慎对待的技术操作,但通过本文的指导,相信读者能够轻松掌握其常见步骤和注意事项。

无论是Windows、macOS还是移动设备,准备充分、步骤清晰是成功重装系统的关键。

通过整理数据、创建安装盘、了解设备设置等基础操作,不仅可以解决系统存在的问题,还能让设备焕然一新。

希望这篇文章能为广大的电脑和手机用户提供实用的重装系统指南。

什么是低级格式化硬盘低级格式化的作用和原理

什么是低级格式化 低级格式化就是将空白的磁盘划分出柱面和磁道,再将磁道划分为若干个扇区,每个扇区又划分出标识部分 ID、间隔区 GAP 和数据区 DATA等。

可见,低级格式化是高级格式化之前的一件工作,它不仅能在DOS 环境来完成,也能在 xp 甚至vista 系统下完成。

而且低级格式化只能针对一块硬盘而不能支持单独的某一个分区。

每块硬盘在出厂时,已由硬盘生产商进行低级格式化,因此通常使用者无需再进行低级格式化操作。

其实,我们对一张软盘进行的全面格式化就是一种低级格式化。

低级格式化的作用:逻辑坏道总的来说,坏道可以分为物理坏道和逻辑坏道。

其中逻辑坏道相对比较容易解决,它指硬盘在写入时受到意外干扰,造成有 ECC 错误。

从过程上讲,它是指硬盘在写入数据的时候,会用 ECC 的逻辑重新组合数据,一般操作系统要写入 512 个字节,但实际上硬盘会多写几十个字节,而且所有的这些字节都要用 ECC 进行校验编码,如果原始字节算出的ECC 校正码和读出字节算出的 ECC 不同,这样就会产生 ECC 错误,这就是所谓的逻辑坏道产生原因。

物理坏道至于物理坏道,它对硬盘的损坏更具致命性,它也有软性和硬性物理坏道的区别,磁盘表面物理损坏就是硬性的,这是无法修复的。

而由于外界影响而造成数据的写入错误时,系统也会认为是物理坏道,而这种物理坏道是可以使用一些硬盘工具(例如硬盘厂商提供的检测修复软件)来修复,此外,对于微小的硬盘表面损伤,一些硬盘工具(例如西部数据的 Data Lifeguard Tools)就可以重新定向到一个好的保留扇区来修正错误。

对于这些坏道类型,硬性的物理坏道肯定是无法修复的,它是对硬盘表面的一种最直接的损坏,所以即使再低格或者使用硬盘工具也无法修复(除非是非常微小的损坏,部分工具可以将这部份坏道保留不用以此达到解决目的)。

低格的作用对于硬盘上出现逻辑坏道或者软性物理坏道,用户可以试试使用低级格式化来达到屏蔽坏道的作用,但这里需要指出,屏蔽坏道并不等于消除坏道了,低格硬盘能把原来硬盘内所有分区都删除,但坏道却隐藏起来,不让用户在存储数据时使用这些坏道,这样能在一定程度上保证用户数据的可靠性,但坏道却会随着硬盘分区、格式化次数的增长而扩散蔓延。

所以笔者并不推荐用户对硬盘进行低格,如果硬盘在保修期内最好去保修或者找经销商换一块,这可以说是最佳解决方案,也是最彻底的解决方案了。

如果硬盘过了保修期不让换,那可以试试低格硬盘,以防止将数据存储到坏道导致数据损失。

硬盘低级格式化的原理:需要指出的是,在以前的磁盘读取技术水平下,低级格式化是一种损耗性操作,其对硬盘寿命有一定的负面影响。

最近一两年出的硬盘进行低级格式化影响要小的多,因为他不是物理上的操作。

因此,许多硬盘厂商均建议用户不到万不得已,不可 妄 使此招。

当硬盘受到外部强磁体、强磁场的影响,或因长期使用,硬盘盘片上由低级格式化划分出来的扇区格式磁性记录部分丢失,从而出现大量 坏扇区 时,可以通过低级格式化来重新划分 扇区 。

但是前提是硬盘的盘片没有受到物理性划伤。

硬盘低级格式化的功用硬盘低格格式化是对硬盘最彻底的初始化方式,经过低格后的硬盘,原来保护的数据将全部丢失,所以一般来说低格硬盘是非常不可取的,只有非常必要的时候才能低格硬盘。

而这个所谓的必要时候有两种,一是硬盘出厂前,硬盘厂会对硬盘进行一次低级格式化;另一个是当硬盘出现某种类型的坏道时,使用低级格式化能起到一定的缓解或者屏蔽作用。

对于第一种情况,这里不用多说了,因为硬盘出厂前的低格工作只有硬盘工程师们才会接触到,对于普通用户而言,根本无须考虑这方面的事情。

至于第二种情况,是什么类型的坏道时才需要低格呢?在说明这个关键性问题前,先来看看硬盘坏道的类型。

什么,是,低级,格式化,硬盘,的,作用,和,原理,

加入收藏
               

C#ToString格式化输出、ToString重写等常用技巧总结

点击下载文档

格式为doc格式

  • 账号登录
社交账号登录