覆盖类中int元素的ToString()

Ale*_*lex 4 .net c#

我想覆盖ToString()int 的方法(这是一个类的一部分),这样如果int的值为0,则ToString()应该返回一个空字符串"".可以这样做吗?

更新 很容易创建一个

public string AmountToString {
    get { if (Amount != 0) return Amount.ToString(); else return ""; }
}
Run Code Online (Sandbox Code Playgroud)

我只是想知道它是否可以在一个原始类型上实现(ToString())

seh*_*ehe 11

三种主要方法:

使用(自定义)格式提供程序

所以你可以使用i.ToString(formatprovider);

编辑我想我发现了一个自定义格式字符串,它与默认的.NET数字格式提供程序一起使用:

i.ToString("0;-0;"); // works
Run Code Online (Sandbox Code Playgroud)

另一个样本从";"页面上抬起 部分分隔符:

i.ToString("##;(##);**Zero**"); // would return "**Zero** instead
Run Code Online (Sandbox Code Playgroud)

小费:

您可以自己加载Format Utility,这是一个应用程序,可以将格式字符串应用于数字或日期和时间值,并显示结果字符串.

扩展方法

public static string ToStringOrEmpty(this int i)
{
    return (0==i)? string.Empty : i.ToString();
}
Run Code Online (Sandbox Code Playgroud)

配件助手:

class X
{ 
      int member;

      public string getMember() { return (0==member)? string.Empty : member.ToString();
}
Run Code Online (Sandbox Code Playgroud)