删除不必要的 unsafe 修饰符(IDE0380)

资产 价值
规则 ID IDE0380
标题 删除不必要的 unsafe 修饰符
类别 Style
子类别 不必要的代码规则(修饰符偏好)
适用的语言 C#
Options None

概述

此规则标识使用 unsafe 修饰符标记但实际不包含任何不安全操作的代码块、方法、类型或其他声明。 修饰 unsafe 符允许使用指针和其他不安全的代码功能,但如果未使用这些功能,则不需要修饰符,并且应出于代码清楚起见而删除该修饰符。

Example

// Code with violations.

// Unnecessary, no unsafe operations.
unsafe class MyClass
{
    public void Method()
    {
        var x = 5;
    }
}

// Unnecessary, no unsafe operations.
unsafe void ProcessData(int value)
{
    Console.WriteLine(value);
}

// Fixed code.
class MyClass
{
    public void Method()
    {
        var x = 5;
    }
}

void ProcessData(int value)
{
    Console.WriteLine(value);
}

// Example where 'unsafe' is needed.
unsafe class ValidUsage
{
    int* pointer; // Pointer type requires 'unsafe'.
}

禁止显示警告

如果只想取消单个冲突,请将预处理器指令添加到源文件以禁用,然后重新启用规则。

#pragma warning disable IDE0380
// The code that's violating the rule is on this line.
#pragma warning restore IDE0380

若要禁用文件、文件夹或项目的规则,请在none中将其严重性设置为

[*.{cs,vb}]
dotnet_diagnostic.IDE0380.severity = none

若要禁用所有代码样式规则,请将类别 Style 的严重性设置为 none中的

[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Style.severity = none

有关详细信息,请参阅 如何禁止显示代码分析警告

另请参阅