С# 12, первичные конструкторы

В новой версии C# (v.12) есть первичные конструкторы, поэтому мы можем написать:

      public interface IService
{
    Distance GetDistance();
}

public class ExampleController(IService service) : ControllerBase
{
    private readonly IService _service = service;
    [HttpGet]
    public ActionResult<Distance> Get()
    {
        return _service.GetDistance();
    }
}

или даже это

      public class ExampleController(IService service) : ControllerBase
{
    [HttpGet]
    public ActionResult<Distance> Get()
    {
        return service.GetDistance();
    }
}

второй вариант еще более удобен в использовании (и короче). Но хороший ли это способ (вариант №1) или, возможно, лучше использовать вариант №1? Потому что теоретически мы можем изменитьserviceпеременная с неожиданным поведением прямо в коде.

0 ответов

Другие вопросы по тегам