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

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
2022-02-11 dotnet中的counters说明(三)
2022-02-11 dotnet中的counters说明(二)
2022-02-11 dotnet中的counters说明(一)
2022-02-11 dotnet中的counter
2022-02-11 注入一接口多实例,小心有坑
2022-02-11 并行中的分区Partitioner
2022-02-11 并行计算Parallel