c# - 使用语句排序时的预期排序行为是什么
问题描述
因此,我们最近遇到了一个问题,即根据所使用的编辑器(VS Code 与 Visual Studio 正确)对包含行进行排序会导致差异,从而导致文件来回翻转。
老实说,我不确定这是 Visual Studio 代码问题,还是 Visual Studio 问题,所以要尝试在这里询问是否有人可以指出我的“预期”行为。
问题基本上是这样的。
从这组未排序的 using 语句开始。
using System.CommandLine.Invocation;
using System.CommandLine.IO;
using System.Threading.Tasks;
using System.CommandLine;
using System;
using System.Diagnostics;
using System.IO;
using Google.Protobuf.Reflection;
using System.Text;
在 VS Code 的命令面板中使用升序排序命令产生 ->
using Google.Protobuf.Reflection;
using System;
using System.CommandLine;
using System.CommandLine.Invocation;
using System.CommandLine.IO;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading.Tasks;
在 Visual Studio 中使用排序线(编辑->高级->排序线)时(Visual Assist 给出相同的结果)。我也在 Notepad++ 中尝试过,并且在使用词法排序选项时也得到了相同的结果。
using Google.Protobuf.Reflection;
using System.CommandLine.Invocation;
using System.CommandLine.IO;
using System.CommandLine;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Threading.Tasks;
using System;
然而,真正使问题感到困惑的是,如果我将输入块更改为使用 qouted 字符串(我意识到格式错误,但类似于 c++ 包含),则行为会翻转。
从此开始
using "System.CommandLine.Invocation";
using "System.CommandLine.IO";
using "System.Threading.Tasks";
using "System.CommandLine";
using "System";
using "System.Diagnostics";
using "System.IO";
using "Google.Protobuf.Reflection";
using "System.Text";
在 VS Code 中,排序行命令产生
using "Google.Protobuf.Reflection";
using "System.CommandLine.Invocation";
using "System.CommandLine.IO";
using "System.CommandLine";
using "System.Diagnostics";
using "System.IO";
using "System.Text";
using "System.Threading.Tasks";
using "System";
使用 Visual Studio、Visual Assist 和 Notepad++ 时,我们得到以下信息
using "Google.Protobuf.Reflection";
using "System";
using "System.CommandLine";
using "System.CommandLine.IO";
using "System.CommandLine.Invocation";
using "System.Diagnostics";
using "System.IO";
using "System.Text";
using "System.Threading.Tasks";
如果有人可以解释预期的行为应该是什么,以及为什么引用的字符串与未引用的字符串排序不同。
解决方案
推荐阅读
- python - Python Markdown 的“TOC”类中的编号列表
- ruby-on-rails - 返回 *.html.erb 视图作为操作响应 - ROR
- delphi - 使用 TArrays 的多维记录,如何在 Delphi 10.3 中设置长度
- git - 同一设备上有多个 Github 用户名和电子邮件?
- flutter - Flutter Dartdoc:如何在有状态的小部件中记录状态对象?
- c# - 如何在 C# 中绘制可以移动和调整大小的箭头形状
- c# - 缓存 JS CSS 和视图 Umbraco V7
- docker - 如何使用 Traefik 设置 Nginx
- ios - Combines Publisher.subscribe(_ subject) 有时会泄漏吗?
- python - 如何将 scipy curve_fit 与自定义目标函数一起使用?