问题描述
如何防止在生成成员时在 VS Code for C# 中添加 private
访问修饰符?
名称“foo”在当前上下文中不存在 [Assembly-CSharp]csharp(CS0103)
我在光标的帮助下将插入符号聚焦在 foo();
上,按 Ctrl+.
并选择
private void foo()
{
throw new NotImplementedException();
}
如您所见,我正在添加 private
修饰符。
void foo()
{
throw new NotImplementedException();
}
我尝试在 VS Code 中搜索 private
、accessibility
设置,但一无所获。鉴于 VS Code 的可配置性很强,我希望也能设置此配置。如果你知道怎么做,可以分享给我吗?
解决方法
我不相信你所要求的今天是可能的。访问修饰符在 Roslyn here 中设置,从 here 调用。正如您在代码中看到的,此设置不会暴露给上面的任何层,您将获得 public
或 private
:
var accessibility = member.Name == memberName || generateAbstractly
? Accessibility.Public
: Accessibility.Private;
鉴于今天无法实现,您可以向 Roslyn 和/或 OmniSharp 提交问题以请求此功能,或者您可以考虑构建一个 custom Roslyn Analyzer。>
有一个 tutorial 可用,其中包含有关如何提供代码修复以快速处理违规行为的信息。