System.IFormatProvider.GetFormat 方法

上一篇:IEquatable{T} 方法 下一篇:IFormattable 方法

方法描述

返回一个对象,该对象为指定类型提供格式设置服务。

语法定义(C# System.IFormatProvider.GetFormat 方法 的用法)

Object GetFormat(
	Type formatType
)

参数/返回值

参数值/返回值 参数类型/返回类型 参数描述/返回描述
formatType System-Type 一个对象,该对象指定要返回的格式对象的类型。
返回值 System.Object 如果 IFormatProvider 实现能够提供该类型的对象,则为 formatType 所指定对象的实例;否则为 null。

提示和注释

GetFormat 是一种回调方法,其格式设置方法和分析方法通过调用它,可检索分析操作中输入字符串的格式或格式设置操作中输出字符串的格式的相关信息。 在 formatType 参数中,格式设置或分析方法可传递执行其操作所需的对象类型。 如果 IFormatProvider 实现可提供该格式设置或分析对象,它将返回该对象。 否则,它将返回 null。

例如,在调用 Int32.ToString(IFormatProvider) 方法时,方法参数为 IFormatProvider 对象,该对象可提供关于如何设置当前整数实例的字符串表示形式的格式的信息。 运行时执行该方法时会调用 IFormatProvider 对象的 GetFormat 方法,并向其传递一个表示 NumberFormatInfo 类型的 Type 对象。 如果 IFormatProvider 对象可以提供 NumberFormatInfo 对象,它将返回该对象。 如果无法提供该类型的对象,则返回 null。

您可以在提供自定义格式设置或分析服务的类中实现 IFormatProvider 接口和 GetFormat 方法。 IFormatProvider 实现然后会作为参数传递到参数类型为 IFormatProvider(例如 String.Format(IFormatProvider, String, Object[])、Int32.ToString(String, IFormatProvider) 或 DateTime.Parse(String, IFormatProvider))的分析或格式设置方法的任何重载。

System.IFormatProvider.GetFormat 方法例子

例如,下面的代码将 AcctNumberFormat 类传递到 String.Format(IFormatProvider, String, Object[]) 方法,以生成设置了格式的 12 位帐号。

using System;
using System.Globalization;

public enum DaysOfWeek { Monday=1, Tuesday=2 };

public class TestFormatting
{
   public static void Main()
   {
      long acctNumber;
      double balance; 
      DaysOfWeek wday; 
      string output;

      acctNumber = 104254567890;
      balance = 16.34;
      wday = DaysOfWeek.Monday;

      output = String.Format(new AcctNumberFormat(), 
                             "On {2}, the balance of account {0:H} was {1:C2}.", 
                             acctNumber, balance, wday);
      Console.WriteLine(output);

      wday = DaysOfWeek.Tuesday;
      output = String.Format(new AcctNumberFormat(), 
                             "On {2}, the balance of account {0:I} was {1:C2}.", 
                             acctNumber, balance, wday);
      Console.WriteLine(output);
   }
}
// The example displays the following output:
//       On Monday, the balance of account 10425-456-7890 was $16.34.
//       On Tuesday, the balance of account 104254567890 was $16.34.

异常

异常 异常描述

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。

上一篇:IEquatable{T} 方法 下一篇:IFormattable 方法