C# 我应该避免在变量名中使用unicode字符吗?

C# 我应该避免在变量名中使用unicode字符吗?,c#,visual-studio,C#,Visual Studio,C语言规范说我们可以在说明符(类和变量名等)中使用unicode字符 我在代码中做了很多工作。因为我住在巴西,这包括很多重音字符,带有可变名称,如rotação,Angulo,máximo,等等 每当一个更有经验的开发人员发现这一点,我强烈建议避免它,并改变一切回来,否则很多小猫会死 我花了很长的时间去撤销它,但今天我发现在很久以前编写的方法中,一些变量仍然用重音命名,到目前为止没有小猫死亡(至少不是因为这个) 由于我的语言(葡萄牙语)带有重音,如果我们的代码库中有这些字符,那就很有意义了,因为

C语言规范说我们可以在说明符(类和变量名等)中使用unicode字符

我在代码中做了很多工作。因为我住在巴西,这包括很多重音字符,带有可变名称,如
rotação
Angulo
máximo
,等等

每当一个更有经验的开发人员发现这一点,我强烈建议避免它,并改变一切回来,否则很多小猫会死

我花了很长的时间去撤销它,但今天我发现在很久以前编写的方法中,一些变量仍然用重音命名,到目前为止没有小猫死亡(至少不是因为这个)

由于我的语言(葡萄牙语)带有重音,如果我们的代码库中有这些字符,那就很有意义了,因为C#明确允许这样做

因此,问题是:

在C#/VisualStudio代码库中不使用unicode字符是否有合理的技术理由


如果你不得不接管用西里尔文写的代码呢?大多数开发人员都熟悉标准的拉丁字符集。它们很容易在任何键盘上打字


我建议坚持使用简单的集合。

不使用Unicode变量名的几个原因:

  • 这使得人们很难打字
  • 一些Unicode字符看起来与非母语人士非常相似(参见土耳其语I的例子)
  • 某些编辑器可能无法正确显示它们

  • 作为一个好习惯,我更喜欢在每个项目中使用英文名称。然后口音的问题就消失了。当前和未来的开发人员理解代码的问题消失了。在堆栈溢出时发布此代码的问题消失了。如果代码将由葡萄牙语不流利的人编辑,那么使用这样的变量名对他们来说很困难。还有一个类似字母的问题,例如,是字母“r”还是西里尔字母“Ge?”您也可以尝试将代码与RTL语言混合使用,并从中获得乐趣是否有人真正理解我计划使用不属于葡萄牙语的任意unicode字符?比如,“只是为了好玩”,或者别的什么?来吧,大家……在变量名中包含Unicode字符的一个很好的理由是:满足。在构建关系类型枚举时,我添加了一个名为
    Fiancee
    的成员。Visual Studio的代码分析工具用CA1704标记此成员。我改变了警告的拼写,将带有锐音的
    e
    改为
    Fiancée
    。你是建议我使用英语措辞,还是只使用葡萄牙语措辞而不带口音?这是一个更复杂的问题。我可能一个字都不认识,但如果我至少知道如何打字,那就容易多了。我编辑了这个问题:有什么技术原因吗。。。?到目前为止,我只看到了“人为因素”,即主观原因。没有技术原因。编译器不关心您调用什么变量或使用什么字符,只关心它们是合法的并且是唯一的。唯一重要的原因是人为因素,因为你的代码总有一天会需要另一个人阅读并编辑。事实上,有人的编辑可能不知道如何阅读它,这是非常技术性的。@Namfuak我的问题明确指的是Visual Studio,因此,任何开发人员都应该在Visual Studio中阅读代码。@TonyVitabile这似乎是问题的真正答案:“没有技术上的原因。编译器不关心你调用什么变量或使用什么字符,只关心它们是合法的且唯一的。”你看,这回答了我的问题,让我自由选择哪个成本更高。例如,我可以看到,葡萄牙语开发人员100%地组成团队,试图弄清楚变量
    furacao
    的意思是“furacão”还是“furaão”,这会带来一些成本。