请教问题,关于IFormattable接口的。

问题描述

我想请问一下IFormattable接口,实现它的时候,里面的第二个参数publicstringToString(stringformat,IFormatProviderformatProvider)IFormatProviderformatProvider是做什么的。。我写了个东西,并么有使用到IFormatProviderformatProvider,也是可以正常运行的啊。publicstringToString(stringformat,IFormatProviderformatProvider){switch(format){casenull:case"N":returnToString();case"F":returna;case"L":return"博物馆";case"A":returnString.Format("{0}{1},{2};starts:{3},wins:{4}","白银市",a,"sdf",a,a);case"D":returnstring.Format(formatProvider,"({0},{1})","这是formatProvider","hehe");default:thrownewFormatException(String.Format("Format{0}notsupported",format));}如上,我并没有使用到formatProvider参数,但是我接口还是完成了格式,那么formatProvider参数使用来做什么的。麻烦使用通俗易懂的话来说明。

解决方案

解决方案二:
1、你不使用formatProvider,可以正常转换,因为String.Format有一个参数的重载方法2、IFormatProvider是格式参数,目的是将指定字符串中的一个或多个格式项替换为指定对象的字符串表示形式比如29,可以使用IFormatProvider,输出29.00(保留两位小数)、29%等
解决方案三:
解释的我还是看不明白啊。。自己顶一下。谁能给我点详细的回答,通熟易懂点的啊。

时间: 2024-10-03 12:34:33

请教问题,关于IFormattable接口的。的相关文章

请教一个关于C#接口dephi dll文件的问题。

问题描述 有一个无法更改的第三方控件,是dephi写的.我用c#访问他,读取一些数据.dephi函数原型:functionJX102R_Read_Card(varReaderNo:integer;CardNO,clientIP:pchar):integer;三个参数都是返回过来的,不需要传值进去.第一个参数c#定义为int能获取到,但是第二个,第三个,用了很多种类型都会报错.接口文档写的是返回的字符串指针.使用非托管方式引用的dll...请问各位大侠,c#里面该用什么类型去获取第二,三个参数的值

请教C#中接口的显示实现的问题?

问题描述 classProgram:IShape1,IShape2{staticvoidMain(string[]args){ProgramobjProgram=newProgram();objProgram.DrawRectangle();objProgram.DrawCircle();((IShape1)objProgram).DrawCircle();((IShape2)objProgram).DrawCircle();Console.ReadLine();}publicvoidDrawR

物理缓冲-请教朋友们一个udp发送接收问题

问题描述 请教朋友们一个udp发送接收问题 如果网口处于断开时发送了一包udp,那么在网口进入连通状态后对端还能不能收到这包udp数据呀?由断到通不经过太久.就是发送方的物理驱动里给不给缓冲这包数据 等链路通时再发出去 解决方案 发送UDP数据报之后接收一个回应向朋友们请教一个关于USB接口编程的问题 解决方案二: 能收到~反正它有目的端口信息,是无连接转发的~

vbnet-请教关于vb inotifypropertychanged接口的问题

问题描述 请教关于vb inotifypropertychanged接口的问题 我写了个dll,其中定义了一个类,实现了inotifypropertychanged接口,其中有个propertychanged事件,当我做了一个wpf用一个textbox绑定到这个类的实例,绑定是成功的,但当改变这个实例的属性时,textbox不跟随变化(此时我是用wpf引用的这个dll),然后我试了下,把这个类的代码直接写在wpf的解决方案中时,textbox会跟随变化,试了几次,好像是通过引用dll时,好像wp

String和StringBuilder区别

C#          String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与创建新的 String对象相关的系统开销可能会非常昂贵.如果要修改字符串而不创建新的对象,则可以使用System.Text.StringBuilder 类.例如,当在一个循环中将许多字符串连接在一起时,使用 StringBuilder类可以提升性能.         通过用一个重载

避免重复代码——know your library

刚才在读一段代码的时候看到了一个不怎么有趣的方法: C#代码 /// <summary> /// Add enough zeros to a number as to be represented on 4 characters /// </summary> /// <param name="offset"> /// The number that must be represented on 4 characters /// </param&

如何查询电脑光驱/刻录机使用记录?

  问题:本站电脑在线问答栏目有网友问:请教能否像USB接口插入U盘会有记录一样,查询到光驱插入光盘或刻录过光盘的记录.如果能查询到曾经用光盘刻录操作的记录,能否查到相关内容比如刻录了多大的文件? 回答:这个记录也是存在的,但是就算一些高手也不一定知道,查询方法: 使用注册表查询,在运行里输入regedit打开注册表 打开HKEY_LOCAL_MACHINE SYSTEM ControlSet001 Enum IDE 右键导出,选择文本文件txt格式,打开txt文件就知道什么时间使用过光驱了.

.Net判断一个对象是否为数值类型实例_实用技巧

本文实例讲述了.Net判断一个对象是否为数值类型的方法,分享给大家供大家参考.具体实现方法如下: .Net判断一个对象是否为数值类型乍一听是个很简单的事,但突然搞起来还真有点无从下手的感觉. 首先当然是通过GetType()方法反射获取其类型信息,然后对其进行分析,但是类型信息Type中并没有简单地给出这么一个属性进行判断. 老外给出的方法是: 复制代码 代码如下: public static bool IsNumeric(this Type dataType) {         if (da

编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串、实现浅拷贝和深拷贝、用dynamic来优化反射]

原文:编写高质量代码改善C#程序的157个建议[为类型输出格式化字符串.实现浅拷贝和深拷贝.用dynamic来优化反射] 前言 本文已更新至http://www.cnblogs.com/aehyok/p/3624579.html .本文主要学习记录以下内容: 建议13.为类型输出格式化字符串 建议14.正确实现浅拷贝和深拷贝 建议15.使用dynamic来简化反射实现 建议13.为类型输出格式化字符串   有两种方法可以为类型提供格式化的字符串输出. 一种是意识到类型会产生格式化字符串输出,于是