Использование свойств (Properties) - C#

Узнай цену своей работы

Формулировка задачи:

недавно разбирал роботу свойств и по ходу возникло два вопроса. 1. есть автоматические свойства которые разрешают присваивать себе значение и извлекать его, тоесть обычные неавтоматические своства , без соотвествуещих им полей работать не должны по идеи. Однако даный код скомпилировался, и было получено сообщение "Process is terminated due to StackOverflowExeption"
namespace testing
{
    class A
    {
        public int Prop
        {
            get { return Prop; }
            set { Prop = value;}
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
 
            a.Prop = 5;
            Console.WriteLine(a.Prop);
 
        }
    }
}
Вопрос: почему вобще даный код скомпилировался раз у свойства нету привязки к полю? Если все-таки такое делать можно, тоесть использовать неавтоматические методы без соотвествующих им полей,тогда зачем оно надо и когда используеться? и последний вопрос по даному примеру, откуда появилось такое исключение и что оно значит? 2. Свойства в интерфейсах, аксессоры должны быть без тел, и указывать что может делать свойство при реализации, а именно read/write, readonly, writeonly(утверджение с MSDN). При этом, если в интерфейсе в свойстве есть лиш один аксессор, можно спокойно дописать второй в реализации и все будет работать, и лишь при явной реализации интерфейса аксессоры должны быть идентичны. Вопрос: какой смысл тогда в свойствах в интерфейсе если их можно переписать как угодно при реализации? где логика?

Решение задачи: «Использование свойств (Properties)»

textual
Листинг программы
class Person
{
   public string FirstName { get; set; }
   public string LastName { get; set; } 
   public string FullName => $"{FirstName} {LastName}";
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5
Похожие ответы