Na obsah stránky

Syntax sugar alá If Exists

Aleš Roubíček | | # permalink

Kolega Bouda se na svém vývojářském blogu zamýšlí nad tím, zda by nebylo dobré rozšířit syntaxi jazyka C# o příkaz ifx (if exists), který by měl zpřehlednit/zjed­nodušit zápis if (this.someRef != null) ... na ifx (this.someRef) ..., podobně jako to umí ECMAScript.

Můj názor je takový, že v C# by se takovéto konstrukce zavádět neměly. Pokud má někdo averzi k operátorům ! a !=, ostatně jako já, dá se to obejít jiným syntaktickým cukrem. Ne na úrovni jazyka, ale na úrovni API.

public static class Is {
  public static bool Null(object item) {
    return item == null;
  }
  public static bool NotNull(object item) {
    return item != null;
  }
}

Zápis s použitím této minitřídy by pak vypadal if (Is.NotNull(this.someRef)) .... Na jednu stranu je zápis čitelnější i pro necéčkaře, na druhou je o něco delší a je v něm více závorek…

Nebo je tu možnost přejít na Spec#, který podporuje non-nullable types.

Našli jste v článku chybu? Máte námět na reportáž? Založte mi ticket.