Можно ли использовать универсальные формы в C#?

_ имеет 3 основных обычных использования в Python:

  1. Чтобы удерживать результат последнего выполненного выражения (/ statement) в сеансе интерактивного интерпретатора. Этот прецедент был установлен стандартным интерпретатором CPython, а другие интерпретаторы последовали его примеру
  2. . Для поиска перевода в i18n (см., Например, документацию gettext ), как в коде типа: raise forms.ValidationError(_("Please enter a correct username"))
  3. Как общее имя переменной «throwaway», чтобы указать, что часть результата функции умышленно игнорируется, как в коде типа: label, has_label, _ = text.partition(':')

Последние две цели могут конфликтовать, поэтому необходимо избегать использования _ в качестве альтернативной переменной в любом кодовом блоке, который также использует его для перевода i18n (многие люди предпочитают двойное подчеркивание, __, как свою переменную throwaway для именно по этой причине).

32
задан Keith 5 July 2013 в 07:21
поделиться

2 ответа

Да Вы можете! Вот сообщение в блоге, которое я сделал только что с приемом:

Разрабатывающие Универсальные Формы

Редактирование: Похож Вы уже делаете его этот путь. Этот метод хорошо работает так, я не рассмотрел бы это также hacky.

20
ответ дан 27 November 2019 в 21:15
поделиться

У меня есть взлом к обходному решению это, которое работает, но не идеально:

Добавляют новый класс к проекту, который наследовал форму с ее простым именем.

internal class MyGenericForm:
    MyGenericForm<object> { }

Это означает, что, хотя разработчик все еще неправ, ожидаемый простой тип (т.е. без <>) все еще найден.

0
ответ дан 27 November 2019 в 21:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: