Пометить стандартный метод библиотеки как «устаревший» или иначе «скрыть» - PullRequest
0 голосов
/ 23 апреля 2020

String.Contains опционально занимает перечисление StringComparison (например, StringComparison.OrdinalIgnoreCase). Я постоянно забываю указать IgnoreCase, поэтому я хочу пометить этот метод как [Obsolete], поэтому я вижу его в Warnings, поэтому я не забываю указывать тип StringComparison.

Я открыт и другим решениям, например, что-то сделать, чтобы «спрятать» этот метод и предотвратить его вызов. Идеальное решение не включает анализаторы Roslyn, поскольку я использую F #.

Это решение интересно, но, очевидно, не идеально.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Ионид для Код VS поддерживает анализаторы . Вам нужно написать один для методов, которые вы хотите запретить.

0 голосов
/ 23 апреля 2020

Я бы использовал метод расширения. Просто поместите его в любое место, доступное для всего вашего кода, и объявите его прямо в пространстве имен System. (Я не владею F #, но это должно работать.)

namespace System

type String with
  member CaselessContains(str) = String.Contains(str, StringComparison.OrdinalIgnoreCase)
...