【问题标题】:What does .net source (C#, VB.net) look like in other (non-english) languages?.net 源代码(C#、VB.net)在其他(非英语)语言中是什么样的?
【发布时间】:2011-04-16 11:01:25
【问题描述】:

正如标题所说,我只是有点好奇......我看到一些欧洲开源项目发布了源代码,但它们在语法上都是相同的。那么中文或日文或其他更复杂的基于字符的语言呢?

更新:我猜这有点误导。我问的是“传统的”.Net 语言,比如 C#、VB.net,甚至可能是 F# 等。我现在明白,有一些更新的 .Net 语言正在被创建,主要是为了支持非英语的书面和口头语言,而且它们看起来与用 VB.net 和 C# 编写的类似源代码非常不同。

我会尝试给几个人投票,并将我预期问题的答案标记为答案。

【问题讨论】:

标签: .net visual-studio internationalization globalization cjk


【解决方案1】:

关键字是英文的,所以大部分代码在任何语言中都是相同的。有些人使用当地语言作为标识符名称,其他人也使用英文名称。

下面是一些带有瑞典标识符的代码的示例:

public class StenSaxPåse {

  public enum Värde { Papper = 0, Sten = 1, Sax = 2 }

  private Värde _värde;

  public StenSaxPåse(Random slump) {
    _värde = (Värde)slump.Next(3);
  }

  public bool SammaSom(StenSaxPåse andra) {
    return _värde == andra._värde;
  }

  public bool Slår(StenSaxPåse andra) {
    return
      (_värde == Värde.Papper && andra._värde == Värde.Sten) ||
      (_värde == Värde.Sten && andra._värde == Värde.Sax) ||
      (_värde == Värde.Sax && andra._värde == Värde.Papper);
  }

  public override string ToString() {
    switch (_värde) {
      case Värde.Papper: return "PAPPER";
      case Värde.Sten: return "STEN";
      default: return "SAX";
    }
  }

}

【讨论】:

  • 有趣的是,语法着色器被变音符号弄糊涂了。
  • 同意迈克尔。还有 Guffa,我假设您通常也会用您的母语编写源 cmets?
  • @fdfrye:我通常只使用英文标识符和 cmets,但这里和那里都有一些瑞典语 cmets。
  • @Michael Petrotta:是的,我也注意到了。 .NET 语言有点不寻常,因为它们实际上允许标识符中的变音符号。许多语言没有,这使得使用本地语言作为标识符变得更加困难。
  • Tänk på att nationalitetsord alltid inleds med versal på engelska。德克萨斯州heter det "瑞典语", inte "瑞典语"。
【解决方案2】:

当然,这取决于语言。

个别语言的语法和规则不会改变。例如,无论开发何种语言,C# 仍将使用相同的字符和关键字。但是,变量名称等允许使用(几乎)任何 unicode 字符,这意味着其他语言的人可以使用非英语命名。

话虽如此,没有什么能阻止人们使用非英语标识符创建一种新的 .NET 语言 - 示例包括 LexicoHindi Programming LanguageFarsi.NET

这是来自Lexico site的一些示例代码:

incluya "System.Windows.Forms" 
clase ventana derivada_de "System.Windows.Forms.Form" { publicos: mensajes: ventana copie "Este es el título de mi primera ventana" en ventana.text }

【讨论】:

    【解决方案3】:

    语法相同。编程语言在语法上应该是通用的。

    【讨论】:

    • 话虽如此 - 他没有指定任何特定的语言。我刚刚在我的答案中添加了几个针对 .NET 的外观非常不同的语言示例;)
    • @Reed Copsey - 但其中每一种都是一种新的语言,具有自己的语法(显然,看起来大不相同)对吗?
    • @Justin:但那些仍然用于“.net 源”......如果你用 C# 或 VB.NET 编写代码,它当然会使用相同的语法:)跨度>
    • @Reed Copsey-Doh!我只是重新阅读了这个问题,并看到了我错过的部分。出于某种原因,我以为我在那里看到了 C#。但在那种情况下,“.NET Source”不会被视为 IL(并且在这种情况下,在口语中是相同的)吗?
    • 好点。虽然 IL 的二进制形式在每种语言中看起来都像胡言乱语;)
    猜你喜欢
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    相关资源
    最近更新 更多