Свойства

Последнее обновление: 29.07.2018
Вопрос 1

Что будет выведено на консоль в результате выполнения следующей программы?

class Person
{
	private int age = 15;

	public int Age
	{
		get { return age; }
		set { }
	}
}
class Program
{
	static void Main(string[] args)
	{
		Person tom = new Person();
		tom.Age = 25;
		Console.WriteLine(tom.Age);

		Console.ReadKey();
	}
}

Варианты ответов:

  • 15

  • 25

  • 0

  • Программа не скомпилируется

На консоль будет выведено число 15.

Вопрос 2

Что будет выведено на консоль в результате выполнения следующей программы и почему?

class Person
{
	internal string Name { get; set; } = "Bob";
}
class Program
{
	static void Main(string[] args)
	{
		Person tom = new Person { Name = "Tom" };
		Console.WriteLine(tom.Name);

		Console.ReadKey();
	}
}

На консоль будет выведена строка "Tom". Потому что для автосвойства будет создана переменная, которой будет присвоено значение "Bob". Однако во время выполнения программы при инициализации объекта это значение будет заменяться на строку "Tom".

Вопрос 3

Что будет выведено на консоль в результате выполнения следующей программы и почему?

class Person
{
	internal string Name { internal get; set; } = "Bob";
}
class Program
{
	static void Main(string[] args)
	{
		Person tom = new Person { Name = "Tom" };
		Console.WriteLine(tom.Name);

		Console.ReadKey();
	}
}

Данная программа не скомпилируется, потому что блок get имеет тот же модификатор доступа, что и свойство. Для блока get в данном случае можно использовать более ограничивающие модификаторы - private.

Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850