C# 使用自定义类扩展类型

C# 使用自定义类扩展类型,c#,C#,我在想些什么。而不是写入String.Format(“{0:X}”,num)将数字转换为十六进制。有没有一种方法可以直接扩展字符串,这样我就可以简单地编写num.ToHex()相反?您可以创建扩展方法: public static class IntExtensions { public static string ToHex(this int source) { return string.Format("{0:X}", source); } } 这样

我在想些什么。而不是写入
String.Format(“{0:X}”,num)将数字转换为十六进制。有没有一种方法可以直接扩展字符串,这样我就可以简单地编写
num.ToHex()相反?

您可以创建扩展方法:

public static class IntExtensions
{
    public static string ToHex(this int source)
    {
        return string.Format("{0:X}", source);
    }
}
这样执行:

string hexNum = 1234.ToHex();
它叫。但是,应将其设置为数字类型,以允许:


如果
num
不是一个字符串怎么办?这可以通过简单地将StringExtensions切换为FloateExtensions(例如)在任何类型上实现?因为答案太快了,所以我使用了错误的数据类型,但我已经编辑了我的答案@ThomasAndreèLian是的,这也可以用于浮点数,但您必须将
ToHex(这个int源)
更改为
ToHex(这个双源)
public static class Extensions
{
    public static string ToHex(this int source)
    {
        return string.Format("{0:X}", source);
    }
}