Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

НГ/Code

Автор І. G., декабря 26, 2013, 08:56

0 Пользователи и 1 гость просматривают эту тему.

І. G.

Цитата: Тайльнемер от декабря 26, 2013, 08:53
Code:

public static string NumeralWithRussianNoun(this int number,
  string nounTemplate, bool showNumber = true)
{
  var forms = nounTemplate.Split('|');
  int units = number.Abs().Mod(10);
  int tens = number.Abs().Div(10).Mod(10);
  return (showNumber ? "{0} {1}{2}" : "{1}{2}").Fmt(number, forms[0],
    tens != 1 && units != 0 && units < 5 ? units == 1
      ? forms.Length > 1 ? forms[1] : ""
      : forms.Length > 2 ? forms[2] : ""
      : forms.Length > 3 ? forms[3] : "");
}

А что значит this в списке аргументов?
...И мимимишечных круглышек,
Что безусловно хороши,
Но очень вредны для души.

Тайльнемер

Цитата: І. G. от декабря 26, 2013, 08:56
А что значит this в списке аргументов?
Это значит, что этот статический метод доступен для синтаксического сахара под названием extension methods, суть которго в том, что первый аргумент может быть поставлен перед именем метода и отделён точкой, как будто мы вызываем метод этого объекта.

Т. е., мы можем вместо  StaticClassName.NumeralWithRussianNoun(1000, "черт||а|ей")  писать  1000.NumeralWithRussianNoun("черт||а|ей").

В данном случае один хрен, но часто такая форма записи бывает очень удобна.

Быстрый ответ

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр