Я очень новичок в C # и проходил серию базовых учебных курсов по C # и .NET Core. Во время этих курсов мне постоянно говорили, что если класс не является статическим, мне нужно создать новый экземпляр класса с помощью ключевого слова «new», чтобы получить доступ к его свойствам и методам. Тем не менее, на одном учебном курсе (основы .NET Core) есть пример, который не объясняется, когда это не так, и мне нужна помощь, чтобы понять, почему.
На курсе есть два класса«Ресторан» и «ДетальМодель». Все методы и свойства в классе Restaurant являются общедоступными, класс Restaurant и его свойства и методы не являются статичными. В классе DetailModel (размещенном в отдельном файле класса) создается новое свойство под названием Restaurant с таким типом Restaurant, как:
public Restaurant Restaurant { get; set; }
Благодаря этому свойству я теперь могу получить доступ ко всем методам исвойства класса Restaurant без создания нового экземпляра класса Restaurant. Мой вопрос заключается в том, что когда мне постоянно говорят, что вы не можете получить доступ к методам и свойствам нестатического класса, не создав новый экземпляр этого класса, почему я могу настроить свойство с типом этого класса, а затем получить доступметоды и свойства этого класса, без создания нового объекта этого класса с помощью ключевого слова new? Любая помощь будет принята с благодарностью.
Я использую версию .NET Core Framework 2.2.
См. Код для обоих упрощенных классов ниже:
public class Restaurant
{
public int Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public CusineType Cuisine { get; set; }
}
public class DetailModel : PageModel
{
public Restaurant Restaurant { get; set; }
public void OnGet()
{
Restaurant.Name = "Test Restaurant";
}
}