我可以为 System.IO.Path 类创建扩展方法吗? [复制]
Posted
技术标签:
【中文标题】我可以为 System.IO.Path 类创建扩展方法吗? [复制]【英文标题】:Can I Make Extension Methods For System.IO.Path Class? [duplicate] 【发布时间】:2013-07-16 13:48:51 【问题描述】:我如何为 System.IO.Path 类创建扩展方法我的意思是我需要以下内容:
Path.GetExtension(sFilePath)
我要制作方法:
Path.GetMimeType(sFilePath)
扩展方法:
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";
但是当编译上面的代码方法时出现错误('System.IO.Path':静态类型不能用作参数)。
谢谢大家,
【问题讨论】:
不可能——但这个答案的锻炼可能适合您的需求。 ***.com/questions/249222/… 你可以说你做错了,你从来没有在你的代码中真正使用过 sPath 参数。也没有办法让你弄清楚如何使用它。所以扩展方法没有意义,它没有扩展任何东西。 【参考方案1】:Path
是静态的,因此您不能为其创建扩展方法。扩展方法需要一个对象的实例。
【讨论】:
【参考方案2】:此功能目前不可用。您只能将扩展方法添加到实例而不是类本身(静态)。
功能请求已提交给 Microsoft Static extension methods in C# 4.0 它没有实施,他们将来可能会考虑,也可能不会。
【讨论】:
请注意,“不会修复”并不一定意味着“永远不会修复”。这只是意味着微软已经决定时机不对,现在。在此之前,我已经看到“不会修复”的案例最终被修复/更改,所以这不是“从不”。我不一定同意这种关闭案例的方式,但它可能会减少他们的噪音量,我仍然有一些其他产品的未结案例,他们每周都会收到奇怪的“我也想要这个”或所以,弄乱了我的邮箱。 In 只能想象使用这样的系统开发者邮箱会是什么样子。 谢谢@LasseV.Karlsen,我不知道。将编辑我的答案 仅供参考,该链接不再链接到任何有意义的内容。以上是关于我可以为 System.IO.Path 类创建扩展方法吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用System.IO.Combine(string path1, string path2, string path3)四个参数的重载函数提示`System.IO.Path.Combine(stri
System.IO.Path 不包含 GetFiles 的定义