Модификатор доступа "public" даёт доступ к члену класса для всех других классов. Возможно ли сделать член класса доступным только для некоторых других классов? Уточнения вопроса: внутри одной сборки; следующие модификаторы доступа не подходят: public, private, internal, protected, protected internal, private protected.
Возможность доступа из некоторых классов (не из всех):
Члены, помеченные модификатором доступа internal
- к ним имеют доступ все типы внутри данной сборки, а также типы из дружественных (см. соседний ответ) сборок.
Члены, помеченные модификатором доступа protected
- к ним имеют доступ все типы-наследники данного.
Члены, помеченные модификатором protected internal
- это объединение двух предыдущих пунктов, т.е. имеют доступ все типы из данной и дружественных сборок, а также типы-наследники из любых сборок.
Члены, помеченные модификатором private protected
(C# 7.2 и выше) - это пересечение первых двух пунктов, т.е. имеют доступ типы-наследники данного, но только в пределах данной сборки или дружественных.
Вложенные типы имеют неограниченный доступ ко всем членам данного типа (даже к private
).
Можно определить дружественные сборки пометив их специальным атрибутом
InternalsVisibleTo
Вот пример из MSDN:
using System.Runtime.CompilerServices;
using System;
[assembly: InternalsVisibleTo("AssemblyB")]
// The class is internal by default.
class FriendClass
{
public void Test()
{
Console.WriteLine("Sample Class");
}
}
// Public class that has an internal method.
public class ClassWithFriendMethod
{
internal void Test()
{
Console.WriteLine("Sample Method");
}
}
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Пробовал открыть некоторые сайты(facebook, openstreetmap, instagram) в webbrowser с передачей POST запросаПробовал различные варианты и языки
Собственно не смог найти аналоги этого состояния в других браузерах, подскажите пожалуйстаИнтересует Firefox и Edge
В книжке «Паттерны для масштабируемых JavaScript-приложений» в разделе, где описывается паттерн "Модуль", написано, что модуль, в отличие от IIFE возвращает...