c# – 是否可以将模块功能标记为智能感知发现中的“隐藏”?
发布时间:2020-12-15 07:58:53 所属栏目:百科 来源:网络整理
导读:作为对 this问题的跟进,我想知道是否有可能在模块中标记一个F#函数(可能是通过一个属性)作为Intellisense的“隐藏”.回顾一下,我有一些内联标记的函数,但是根据我不想公开的其他函数实现.因此,虽然实现函数必须保持公开(因为它们被内联),但我记得在过去我遇
作为对
this问题的跟进,我想知道是否有可能在模块中标记一个F#函数(可能是通过一个属性)作为Intellisense的“隐藏”.回顾一下,我有一些内联标记的函数,但是根据我不想公开的其他函数实现.因此,虽然实现函数必须保持公开(因为它们被内联),但我记得在过去我遇到过隐藏在Visual Studio Intellisense中的C#方法,但如果你知道它们是什么就编译得很好,但是我不记得确切的方法,我不确定这是某种特殊的Visual Studio事物还是一个可用的功能,如DebuggerBrowsable(DebuggerBrowsableState.Never)意识.
更新:我尝试应用EditorBrowsable(EditorBrowsableState.Never)但它似乎不适用于Visual F#项目. 解决方法
我最近尝试这样做,我很确定F#忽略了EditorBrowsable属性.
使声明从IntelliSense中消失的唯一方法是使用ObsoleteAttribute,但这也意味着当您实际使用该函数时,您将收到警告.这有点不幸,但如果您只使用某些实现文件中的函数可能会没用,您可以在其中禁用警告: 声明在一个文件中: module Internal = [<System.ObsoleteAttribute>] let foo = 10 禁用警告并使用foo的实现文件: // Disable 'obsolete' warning #nowarn "44" // 'Internal' is empty (and is not shown in the completion list) Internal.foo 该属性可以应用于模块,函数和类型,因此非常灵活. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |