Чем в C#9 свойства, доступные только для инициализации, отличаются от свойств, доступных только для чтения?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Чем в C#9 свойства, доступные только для инициализации, отличаются от свойств, доступных только для чтения?

Сообщение Anonymous »

Я продолжаю читать о свойствах, доступных только для инициализации, в C#9, но мне казалось, что у нас уже есть такие свойства со свойствами, доступными только для чтения, которые можно установить только в конструкторе. После этого он становится неизменяемым.
Например, в этом классе и Имя, и Описание могут быть назначены в конструкторе, но только там, что именно так описываются свойства, доступные только для инициализации.
Пример класса

Код: Выделить всё

class Thingy {

public Thingy(string name, string description){
Name        = name;
Description = description;
}

public string Name        { get; }
public string Description { get; }

public override string ToString()
=> $"{Name}: {Description}";
}
Тестовая программа

Код: Выделить всё

using System;

class Program {

public static void Main (string[] args) {

var thingy = new Thingy("Test", "This is a test object");
Console.WriteLine(thingy);
// thingy.Name = “Illegal”; 

Подробнее здесь: [url]https://stackoverflow.com/questions/64749277/in-c9-how-do-init-only-properties-differ-from-read-only-properties[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»