使用RequireQualifiedAccess防止`using static`指令

时间:2017-12-28 09:40:46

标签: c# .net f#

在F#中,有一个.NET属性阻止程序员使用using static

  

[<RequireQualifiedAccess>]属性添加到模块表示可能未打开该模块,并且对模块元素的引用需要显式限定访问权限。例如,Microsoft.FSharp.Collections.List模块具有此属性。

     

当模块中的函数和值具有可能与其他模块中的名称冲突的名称并且要求合格访问可以极大地提高库的长期可维护性和可演化性时,这非常有用:可以将函数添加到模块中没有破坏源兼容性。

C#中是否有等同于RequireQualifiedAccess的属性?我想让以下代码抛出编译错误:

using static System.Math;

[RequireQualifiedAccess]
public class Circle
{
    public Circle(double radius)
    {
        Radius = radius;
    }

    public double Radius { get; private set; }

    public double Area => PI * Pow(Radius, 2);
}

0 个答案:

没有答案