关于c#:我可以为System.IO.Path类创建扩展方法吗?

Can I Make Extension Methods For System.IO.Path Class?

本问题已经有最佳答案,请猛点这里访问。

如何使System.IO.Path类的扩展方法成为我需要的,如下所示:

1
Path.GetExtension(sFilePath)

我想做方法:

1
Path.GetMimeType(sFilePath)

扩展方法:

1
2
3
4
5
6
7
8
9
10
public static string GetMIMEType(this Path sPath,string sFilePath)
{
        string sExtension = Path.GetExtension(sFilePath).ToLowerInvariant();

        if (sExtension.Length > 0 && dicMIMETypes.ContainsKey(sExtension.Remove(0, 1)))
        {
            return dicMIMETypes[sExtension.Remove(0, 1)];
        }
        return"unknown/unknown";
}

但在编译上述代码方法时,get error("system.io.path":静态类型不能用作参数)。

谢谢大家,


此功能当前不可用。您只能将扩展方法添加到实例,而不能添加到类本身(静态)。

已在C 4.0中向Microsoft静态扩展方法发出功能请求它没有实施,他们可能会在将来考虑它,也可能不会。


Path是静态的,因此不能为它创建扩展方法。扩展方法需要对象的实例。