Cor*_*son 6 c# standards record
记录非常适合封装数据,但是服务和存储库之类的东西呢?与类定义代码相比,属性定义的位置语法更加简洁,因为构造函数、属性和属性初始化代码都是由编译器为我们生成的。
这是一个人为的例子来演示。目的是RecordService用更少的代码行使依赖关系不可变。在现实场景中,依赖项将由服务容器注入。
namespace RecordsTest;
class MyRepo
{
public string SomeMethod() => "MyRepo.SomeMethod()";
}
class MyService
{
public string SomeMethod() => "MyService.SomeMethod()";
}
record RecordService(MyRepo Repo, MyService Service)
{
public void SomeMethod() =>
Console.WriteLine($"RecordService.SomeMethod() {Repo.SomeMethod()} {Service.SomeMethod()}");
}
class Program
{
static void Main(string[] args)
{
var myRepo = new MyRepo();
var myService = new MyService();
var recordService = new RecordService(myRepo, myService);
recordService.SomeMethod();
Console.ReadKey();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1329 次 |
| 最近记录: |