Модификаторы доступа

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

Какие модификаторы доступа есть в C#?

В C# есть следующие модификаторы досупа:

  • private

  • private protected

  • protected

  • internal

  • protected internal

  • public

Вопрос 2

Вам надо определить в классе переменную, которая должна быть доступна из любого места в текущем проекте. Какой модификатор (или модификаторы, если их несколько) вы будете использовать?

  • internal

  • protected internal

  • public

Вопрос 3

В чем различие между модификаторами protected и private protected?

Члены класса, определенные с этими модификаторами, могу быть доступны только в текущем классе или в классах-наследниках. Но если модификатор protected гарантирует доступ для любого класса-наследника вне зависимости от того, в каком прокте (сборке) он расположен. А модификатор private protected делает члены класса доступными только для классов-наследников, которые размещены в том же проекте, где определен исходный класс.

Вопрос 4

Если классы и члены класса не имеют никаких модификаторов, какие модификаторы доступа к ним применяются по умолчанию?

Для классов, размещенных непосредственно в пространстве имен, модификатор доступа по умолчанию - internal. Для классов, размещенных внутри других классов (вложенных классов), модификатор по умолчанию private. А для членов класса модификатор доступа по умолчанию - private.

Вопрос 5

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

class Person
{
	int age = 26;
	string name = "Tom";

	public Person(int age, string name)
	{
		this.age = age;
		this.name = name;
	}
}
class Program
{ 
	static void Main(string[] args)
	{
		Person person = new Person(19, "Bob");
		Console.WriteLine(person.name);
            
		Console.ReadKey();
	}
}

Программа не скомпилируется, поскольку переменная name, к которой мы хотим обратиться в методе Main, не имеет модификаторов. Следовательно, по умолчанию она имеет модификатор доступа private. Поэтому вне класса Person к этой переменной мы обратиться не можем.

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