访问修符,是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();
输出结果:
想要更快更方便的了解相关知识,可以关注微信公众号