.net源码(C#,VB.net)在其他(非英语)语言中是什么样的?

时间:2010-09-23 19:26:38

标签: .net visual-studio internationalization globalization cjk

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

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

我会尝试向几个人投票,并将我想要的问题的答案标记为答案。

3 个答案:

答案 0 :(得分:4)

当然,这取决于语言。

单个语言的语法和规则不会改变。例如,无论使用何种语言,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 }

答案 1 :(得分:4)

关键字是英文的,因此大多数代码在任何语言中都是相同的。有些人使用本地语言作为标识符名称,其他人也使用英语保留名称。

以下是使用瑞典语标识符查看某些代码的示例:

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";
    }
  }

}

答案 2 :(得分:3)

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