『 再看.NET7』新的访问修饰符——file

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『 再看.NET7』新的访问修饰符——file相关的知识,希望对你有一定的参考价值。

访问修符,是OOP中一个很重要的知识点。在C#中,class(类)的访问修饰符有public和internal两种。

类成员(属性,方法,字段,事件等)的访问修饰符public,internal,protected,private,internal protected,protected private六种。

.NET7到来时,C#11中添加了file访问修饰符。对,就是文件的意思,file是只能用来定义类型的访问修饰符,不能定义类型中的类成员,即使嵌套类也不可以。file是用来定义使用范围最小的类型访问修饰符,只限于在当前文件中,其他类型的成员内访问。

file基本的使用场景是,当需要一个类型时,但又不想这个类型的使用范围延伸到外部,所以就在当前.cs文件定义一个file访问修饰符的类型,仅限于当前文件中的类型成员内部封装并访问。

描述的有点绕,还是看一个例子吧,下面是在Product.cs文件中定义如下:

public class Product

    public string? Name  get; set; 
    public decimal PurchasePrice  get; set; 
    public void PrintSalesProduct()
    
        var salesPrice = new SalesPrice
        
            RetailPrice = PurchasePrice * 1.5m,
            WholesalePrice = PurchasePrice * 1.2m
        ;
        Console.WriteLine($"Name:Name,salesPrice");
    

file record SalesPrice

    public decimal RetailPrice  get; set; 
    public decimal WholesalePrice  get; set; 

使用的时候如下:

var product = new Product();
product.Name = "冰棍";
product.PurchasePrice = 1;
product.PrintSalesProduct();

输出结果:

以上是关于『 再看.NET7』新的访问修饰符——file的主要内容,如果未能解决你的问题,请参考以下文章

『 再看.NET7』数值类型

『 再看.NET7』让json序列化体现多态

『 再看.NET7』泛性特性使用场景

『 再看.NET7』string的进化

『 再看.NET7』是否数值类型

JAVA知识总结:继承和访问修饰符