achraf boumessouer Ответов: 1

Ошибка 1 'classlibrary3.trunk.trunk()' недоступен из-за его уровня защиты


namespace ClassLibrary3
{
     class SIPtrunk : Trunk
    {

        private int IPSigRemote; // Destination Point Code

        private int Capacity; // Nombre de circuits * 32

        private string GroupDirection; // IN, OUT, Bi-Directionnel



       void GetSIPtrunk()
        {



        }
       void GetSIPtrunk(int ips, int capacity, string groupdirection)
        {
            this.Capacity = capacity;
            this.GroupDirection = groupdirection;
            this.IPSigRemote = ips;

        }



    }
}


Что я уже пробовал:

пространство имен ClassLibrary3
{
класс SIPtrunk : Trunk// проблема здесь
{

private int IPSigRemote; // код пункта назначения

частная емкость int; // Nombre de circuits * 32

private string GroupDirection; // IN, OUT, Bi-Directionnel



пустота GetSIPtrunk()
{



}
void GetSIPtrunk(int ips, int capacity, string groupdirection)
{
этот.Емкость = емкость;
этот.GroupDirection = групповое направление;
этот.IPSigRemote = ips;

}



}
}

F-ES Sitecore

Проблема в другом. Вы пытаетесь получить доступ к "trunk()" базового класса, но этот метод\конструктор\что бы то ни было, вероятно, является частным, что означает, что вы не можете получить доступ к нему из класса, в котором он определен, например, ваш производный класс. Если это конструктор то убедитесь что конструктор Trunk является общедоступным

общественный багажник()
{
...
}

Кроме того, не оставляйте классы с их модификатором доступа по умолчанию, всегда явно говорите, является ли что-то частным\защищенным\общедоступным и т. д.

класс SIPtrunk : Trunk

Что такое SIPtrunk? Общественности? Личное? Защищен? Внутренний? А вы знаете? Это, вероятно, корень многих ваших проблем, всегда заявляйте явно, как

публичный класс SIPtrunk : Trunk

или как вы хотите, чтобы это было, так что больше никакой путаницы.

1 Ответов

Рейтинг:
1

OriginalGriff

Как я уже сказал, Когда вы спросили об этом раньше:

Цитата:
Подумайте об этом: если класс B является производным от класса A, то класс B содержит все свойства, методы и поля класса A, а также все, что он добавляет сам.

Таким образом, чтобы использовать класс B в вашем приложении, ваш код должен иметь доступ ко всем функциям класса A независимо от того, где он находится в приложении.

Теперь предположим, что у вас есть две сборки, одна из которых содержит классы A и B, а другая пытается использовать только класс B. Если класс а недоступен из второй сборки, потому что он помечен как защищенный, внутренний или даже частный, но B объявлен как открытый, код, который вы пишете, чтобы использовать его, вообще не может получить доступ к классу а - поэтому он не знает, какой класс B действительно содержит и способен - и в результате вы получаете ошибку "несогласованная доступность".

Либо изменить доступа для класса A или класса B, или инкапсулировать в класс, экземпляр в Б, а не вытекающих из него.
Разве что ствол тоже есть public это не сработает.