C# 扩展Convert.ToString()以填充二进制输出

C# 扩展Convert.ToString()以填充二进制输出,c#,C#,我可以使用Convert.ToString将整数转换为二进制表示: int x = 10; string value = Convert.ToString(x, 2); Console.WriteLine(value); 我得到了1100 它甚至可以处理负数,因为我得到了111…0110(32位) 如何扩展此函数,以便提供第三个参数以获得位填充为0(正值)或1(负值)的结果 例如,使用Convert.ToString(10,2,5)-->01100,和Convert.ToString(-10,

我可以使用
Convert.ToString
将整数转换为二进制表示:

int x = 10;
string value = Convert.ToString(x, 2);
Console.WriteLine(value);
我得到了
1100

它甚至可以处理负数,因为我得到了
111…0110
(32位)

如何扩展此函数,以便提供第三个参数以获得位填充为0(正值)或1(负值)的结果


例如,使用
Convert.ToString(10,2,5)
-->
01100
,和
Convert.ToString(-10,2,5)
-->
10110
您要找的是一个扩展方法:

您不能像这样扩展
Convert.ToString
函数,因为它是
静态的
,但是您可以很容易地使用
。PadLeft

int x = 10;
string value = Convert.ToString(x, 2).PadLeft(5, '0');
Console.WriteLine(value);
intx=10;
字符串值=Convert.ToString(x,2).PadLeft(5,'0');
控制台写入线(值)

当然,你也可以自由地把它变成你自己的功能。但是您不能将其放入
Convert

您不能扩展
Convert.ToString
函数本身,因为它是
静态的
,但是您可以轻松地使用
。PadLeft

int x = 10;
string value = Convert.ToString(x, 2).PadLeft(5, '0');
Console.WriteLine(value);
intx=10;
字符串值=Convert.ToString(x,2).PadLeft(5,'0');
控制台写入线(值)

当然,你也可以自由地把它变成你自己的功能。但是你不能把它放在
Convert

中,我将编写自己的扩展:

public static class ConvertEx
{
    public static string ToStringEx(this int input, int baseVal, int sign)
    {
       var result = sign.ToString();
       result += Convert.ToString(input, baseVal);
       return result;
    }
}
称之为:

(-10).ToStringEx(2,1)

此外,不需要仅仅为了约定而传递符号(带疑问),我传递了符号。

我将编写自己的扩展名:

public static class ConvertEx
{
    public static string ToStringEx(this int input, int baseVal, int sign)
    {
       var result = sign.ToString();
       result += Convert.ToString(input, baseVal);
       return result;
    }
}
称之为:

(-10).ToStringEx(2,1)

此外,不需要仅为约定(带问题)而传递符号。扩展方法不适用于静态类(它们不向类“添加”静态方法)扩展方法不适用于静态类(它们不向类“添加”静态方法)