Как выглядит источник .net (C #, VB.net) на других (не английских) языках? - PullRequest
1 голос
/ 23 сентября 2010

Как следует из названия, мне просто немного любопытно ... Я видел несколько европейских проектов с открытым исходным кодом, опубликовавших исходники, но все они были синтаксически идентичны. А как насчет китайского или японского или других более сложных языков, основанных на символах?

ОБНОВЛЕНИЕ: Я думаю, это немного вводило в заблуждение. Я спрашивал о «традиционных» языках .Net, таких как C #, VB.net, возможно, даже F # и т. Д. Теперь я понимаю, что существуют новые языки .Net, которые создаются в основном для поддержки неанглийских письменных и разговорных языков, и что они выглядят очень непохожими на аналогичные источники, написанные на VB.net и C #.

Я постараюсь проголосовать несколькими людьми и отметить ответ на заданный мной вопрос как ответ.

Ответы [ 3 ]

4 голосов
/ 23 сентября 2010

Это, конечно, зависит от языка.

Синтаксис и правила отдельных языков не изменятся. Например, C # будет по-прежнему использовать те же символы и ключевые слова, независимо от того, какой язык разрабатывается. Однако имена переменных и т.п. могут использовать (почти) любые символы Юникода, что означает, что люди на других языках могут использовать неанглийские имена.

Тем не менее, ничто не мешает людям создавать новый язык .NET с идентификаторами, которые не являются английскими по своей природе - примеры включают Lexico , язык хинди программирования и Farsi.NET .

Вот пример кода с сайта Lexico :

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 }
4 голосов
/ 23 сентября 2010

Ключевые слова на английском языке, поэтому большая часть кода одинакова на любом языке.Некоторые люди используют местные языки для имен идентификаторов, другие также хранят имена на английском языке.

Вот пример того, как какой-то код будет выглядеть со шведскими идентификаторами:

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

}
3 голосов
/ 23 сентября 2010

Синтаксически идентично. Язык программирования должен быть синтаксически универсальным.

...