【问题标题】:Does the "Don't name types the same as namespaces" apply to namespace modules?“不要将类型命名为与命名空间相同的名称”是否适用于命名空间模块?
【发布时间】:2014-11-19 00:54:27
【问题描述】:

关于exposing friendly types for multiple consumers(F#、C#、VB 等。)我是否应该将 Eric Lippert 的 rule 的命名类型与命名空间不一样应用于模块?

【问题讨论】:

  • 我想我应该指定将模块命名为与封闭命名空间相同的优点/缺点?但是,如果与拥有类型的命名空间不同,我也有兴趣了解与封闭类型同名的模块
  • 我会继续对模块应用建议。如果它们实际上被编译为 .NET 程序集模块。没有编写很多代码来处理程序集中的多个 .NET 模块(C# 每个程序集只有一个模块..)我不能确定.. 但我猜你可能有类似的问题。
  • @SimonWhitehead F# 模块被编译为(密封抽象)类,而不是 CLR 模块。编译后的 CLR 类名称附加了“模块”。因此,例如,FSharp.Core.dll 中的 Seq 模块具有完全限定名称 Microsoft.FSharp.Collections.SeqModule

标签: c# module f# namespaces


【解决方案1】:

有一个很好的文档描述了 F# 组件设计指南。有一节是关于 F# 组件与包含命名约定等的其他 .NET 语言交互的。

http://fsharp.org/specs/component-design-guidelines/

【讨论】:

    猜你喜欢
    • 2022-12-31
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多