Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
| Ценность | |
|---|---|
| Идентификатор правила | CA2263 |
| Заголовок | Предпочитать универсальную перегрузку, если тип известен |
| Категория | Использование |
| Исправление является разрушающим или неразрушающим | Non-breaking |
| Включен по умолчанию в .NET 10 | Как предложение |
| Применимые языки | C# и Visual Basic |
Причина
Перегрузка метода, принимаюющая System.Type аргумент, вызывается, когда тип известен во время компиляции и доступен подходящий универсальный перегрузка.
Описание правила
Универсальные перегрузки предпочтительнее перегрузки, которые принимают аргумент типа System.Type , когда тип известен во время компиляции (используя оператор typeof в C# или оператор GetType в Visual Basic). Универсальные перегрузки повышают более чистый и более типобезопасный код с улучшенными проверками во время компиляции.
Устранение нарушений
Чтобы устранить нарушение этого правила, используйте подходящую универсальную перегрузку.
Example
В следующем фрагменте кода показано нарушение CA2263:
int size = Marshal.SizeOf(typeof(bool));
Dim size As Integer = Marshal.SizeOf(GetType(Boolean))
Следующий фрагмент кода исправляет нарушение.
int size = Marshal.SizeOf<bool>();
Dim size As Integer = Marshal.SizeOf(Of Boolean)()
Когда следует подавлять предупреждения
Это безопасно для подавления предупреждения из этого правила; однако рекомендуется использовать универсальную перегрузку, если это возможно.
Отключение предупреждений
Если вы просто хотите отключить одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить правило.
#pragma warning disable CA2263
// The code that's violating the rule is on this line.
#pragma warning restore CA2263
Чтобы отключить правило для файла, папки или проекта, задайте его серьезность none в файле конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.CA2263.severity = none
Дополнительные сведения см. в разделе "Подавление предупреждений анализа кода".