Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Ошибка с доступом к классам


Автор: DissDoc 30.4.2010, 14:09
Всем привет. Есть класс такого вида
Код

namespace Test.Data
{
    class XRivet
    {
        public bool Var { get; set;}
    }
}

Есть форма, которая его вызывает
Код

namespace Test.Design
{
    public partial class Navigator : Form
    {
        public Navigator(Dictionary<int, XRivet> dic)
        {
        }
    }
}

В результате в конструкторе Navigator() получаю такую ошибку
error CS0051: Inconsistent accessibility: parameter type 'System.Collections.Generic.Dictionary<int,Test.Data.XRivet>' is less accessible than method 'Test.Design.Navigator.Navigator(System.Collections.Generic.Dictionary<int,Test.Data.XRivet>)'

Что мне делать? Перерыл интернет.. да и так понятно, что нужно как-то иначе доступ к классам сделать.. А вот как не пойму...

Автор: mrbrooks 30.4.2010, 14:32
public забыл
Код

namespace Test.Data
{
    public class XRivet
    {
        public bool Var { get; set;}
    }
}


Добавлено через 1 минуту и 48 секунд
так же не стоит забывать что у формы должен быть один конструктор без параметров. Поэтому нужно создать второй, перегруженный с Dictionary<int, XRivet>

Добавлено через 5 минут и 51 секунду
типа этого

Код

namespace Test.Design
{
    public partial class Navigator : Form
    {
         public Navigator()
        {
             InitializeComponent();
        }
        
        public Navigator(Dictionary<int, XRivet> dic):base()
        {

        }
    }
}

Автор: DissDoc 30.4.2010, 14:46
По поводу форм не знал. Спасибо за замечание.
Но я public в XRivet вставлял :( Там новая ошибка появляется
error CS0053: Inconsistent accessibility: property type 'Test.Data.XPoint' is less accessible than property 'Test.Data.XRivet.Var'
Я если убираю public c Var, то доступ пропадает на эту переменную...
Т.е. какой-то замкнутый круг  smile 

Автор: mrbrooks 30.4.2010, 15:14
Показывай что там у тебя в свойстве Test.Data.XRivet.Var и при чем тут Test.Data.XPoint. 
Хотя подозреваю, что у Test.Data.XPoint тоже нет public если ты юзаешь его в свойстве Test.Data.XRivet.Var.

Автор: DissDoc 30.4.2010, 15:21
Именно. Все заработало! Спасибо большое. Именно не было public ))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)