c# - 在C#源代码中使用特殊字符是否错误,例如 "ñ"?

标签 c# .net visual-studio visual-studio-2010 coding-style

最近,使用 C#,我只是使用拉丁字符 ñ 声明了一个方法参数,我尝试构建(编译)我的整个解决方案并且它有效,因此我能够执行我的程序.但我很好奇,在用 C# 编写的源代码中使用拉丁字符等特殊字符是否错误?如果错误,为什么?

除了用英文编写代码更易读通用之外,还有什么其他理由不在 C# 源代码中使用特殊字符吗?

最佳答案

让我将其分解为几个问题。

Is it legal according to the specification to use non-Roman letters in C# identifiers, strings, and so on?

是的,绝对是。 Unicode 规范归类为字母的任何字符都是合法的。有关详细信息,请参阅规范。

Are there any technical issues regarding non-Roman letters in C# programs?

是的,有一些。正如您可能知道的那样,您可以将代码“静态”和“动态”链接到一个应用程序中,而编译器就是一个应用程序。过去我们遇到过问题,编译器有一个静态链接的旧版本的 Unicode 分类算法,而编辑器有一个动态链接的当前版本,现在编辑器和编译器可以不同意什么是一封法律信件,可能会导致用户混淆。但是,您提到的带有重音符号的拉丁字符在 Unicode 标准中存在的时间很长,不太可能引起任何问题。

而且,很多人还在使用老式的编辑器;早在 80 年代后期,我就在 WATCOM 学习了如何编程,现在我仍然经常使用 WATCOM VI 作为我的编辑器。有时我在其中编码的速度比在 Visual Studio 中更快,因为经过 23 年的练习,我的手指真的很擅长它。 (尽管这些天我几乎所有事情都使用 Visual Studio。)显然,1980 年代编写的编辑器在 Unicode 方面会有问题。

Are there any non-technical issues regarding non-Roman letters in C# programs?

显然,是的。我个人更愿意将希腊字母用于泛型类型参数,例如:

class List<τ> : IEnumerable<τ>

或者在实现数学代码时:

degrees = 180.0 * radians / π;

但我拒绝尊重我的同事的冲动,他们并不是特别想剪切和粘贴,或者学习神秘的组合键,只是为了编辑我的代码。

关于c# - 在C#源代码中使用特殊字符是否错误,例如 "ñ"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8837738/

相关文章:

c# - C# 中的 DataTable 列

c# - 无法将代码放入接口(interface)的解决方法

c# - 如何在 Nunit 中使用文件断言并检查文件是否存在

c# - 将 IIS 与 .NET Core 2.2 Web API 一起使用时自动生成的 web.config 中的硬编码路径

C++:如何识别您的程序是从 Visual Studio 启动的,而不是从 OS 启动的?

c# - .Net Socket Service::通过事件传递套接字请求对于大规模服务来说是一个愚蠢的想法吗?

c# - 通过 SSL 进行 Web 服务身份验证

c# - Linux 系统在 .NET Core 应用程序上引发错误

c# - 如何使用 Magick.Net 调整 jpeg 质量

visual-studio - 对于 TFS 构建,$(TeamBuildConstants) 为空