gpt4 book ai didi

types - 为什么在模块上添加命名空间时会收到错误消息?

转载 作者:行者123 更新时间:2023-12-04 16:52:55 25 4
gpt4 key购买 nike

当我在现有模块上声明命名空间时收到错误。

错误:

Unexpected start of structured construct in definition. Expected '=' or other token.



注意,我只是添加了一个命名空间:
namespace ManageModules

如果没有命名空间,代码会编译。

代码:
namespace ManageModules
module CreateModule.UILogic

open System.Windows.Input // Error is referenced here...
open UILogic.State
open UILogic.Interaction
open ManageModule.Entities
open System.Collections.ObjectModel

type CreationViewModel() =
inherit ViewModelBase()

let mutable (_modules:Module ObservableCollection) = ObservableCollection()

member this.Modules
with get() = _modules
and set(value) = _modules <- value

member this.Add moduleItem =
_modules.Add(moduleItem)

最佳答案

有两种类型的模块声明:顶级模块声明和局部模块声明。

顶级模块声明使用以下语法声明:

module [accessibility-modifier] [qualified-namespace.]module-name

本地模块声明是用
module [accessibility-modifier] module-name =

顶级模块声明必须作为文件中的第一条语句出现,然后模块包含该文件中的所有内容。相比之下,您可以有多个本地模块声明。

请注意,虽然顶级声明还允许您选择添加 .要提供合格的命名空间,您不能使用 . s 在本地模块声明中,尽管您可以嵌套本地模块。

在您的情况下,由于您的模块声明没有出现在文件的开头,您必须编写:
namespace ManageModules
module CreateModule =
...

https://msdn.microsoft.com/en-us/library/dd233221.aspx更多细节。

关于types - 为什么在模块上添加命名空间时会收到错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34975350/

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