gpt4 book ai didi

c# - 在哪里放置库中静态类的扩展? (在 C# 中)

转载 作者:太空宇宙 更新时间:2023-11-03 18:17:45 24 4
gpt4 key购买 nike

虽然我的问题一般是关于 C#,但我会通过一个具体的例子来问它。

我写了一个函数EnsureDirectoryPresent ,它是 .NET 的 BCL 库中 System.IO.Directory 类的扩展。我最好把这个新功能放在哪里?

从概念上讲,该方法是 Directory 类的扩展方法。遗憾的是,它是一个静态类,所以我无法使用该功能。

最佳答案

.NET Framework Design Guidelines(第 2 版)说要在子命名空间中放入一个(或多个类)(例如“...Extensions”)。这是为了允许程序员控制使用,没有 using 指令将阻止可能不需要的扩展:

DO NOT put extension methods in the same namespace as the extended type unless it is for adding methods to interfaces or for dependency management. Of course, in the latter case, the type would be in a different assembly.



然而,该框架在某些地方打破了本指南的精神(例如,如果您使用 System.Xml.XPath.Extensions 等,然后开始使用 XML to LINQ,则 XPathDocument 类将在范围内)。

关于c# - 在哪里放置库中静态类的扩展? (在 C# 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3675757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com