Parameter type "..." is less accessible than method

Odpowiedz Nowy wątek
2011-09-25 14:04
0

Witam. Mam taki kod:

                // klasa głównego okna:
                private void toolStripMenuItem1_Click(object sender, EventArgs e)
        {
            TalkBox talkBox = new TalkBox(lvContacts.SelectedItems[0].Text, client);
        }

                // klasa 2. okna:
                string receiver;
        XMClient client;
        System.Threading.Thread receivingThread;

        private void receivingThread_Task()
        {
            while (true)
            {
                try
                {
                    tbMessages.Text += (Environment.NewLine + DateTime.Today.ToString() + " >> " + client.Receive());
                }
                catch (Exception)
                {
                }
            }
        }

        public TalkBox(string receiver, XMClient client) // BŁĄD dostaję w tym miejscu
        {
            InitializeComponent();
            this.receiver = receiver;
            this.client = client;
            receivingThread = new System.Threading.Thread(new System.Threading.ThreadStart(receivingThread_Task));
            receivingThread.Start();
        }

XMClient jest zadeklarowany jako private na formie Form1 czyli na tej gdzie znajduje się 1. metoda toolStripMenuItem1_Click. O co tu chodzi, dlaczego dostaję taki błąd i jak to naprawić?


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
edytowany 4x, ostatnio: xeo545x39, 2011-09-25 14:06

Pozostało 580 znaków

2011-09-25 14:12
0

A jaki modyfikator dostępu ma KLASA XMClient?


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2011-09-25 14:14
0

Ymm... w sumie to sam nie wiem. Dodałem jako klasę do projektu, a jaki wtedy jest modyfikator - prywatny? Dobra, ale wszystko leży w przestrzeni Client.

EDIT: Zmiana z priv na public podziałała. Hmm...


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał
edytowany 1x, ostatnio: xeo545x39, 2011-09-25 14:32

Pozostało 580 znaków

2011-09-25 14:37

jeśli jeden z parametrów funkcji jest typu, który jest private, to siłą rzeczy ta funkcja nie może być public.

Pozostało 580 znaków

2011-09-25 14:40
0

Dlaczego?


Co kurła debuguj ten kod i streszczaj się klientowi chce się fixa, a jak nie kurła to odpale visuala i ci pomoge a tego byś nie chciał

Pozostało 580 znaków

2011-09-25 14:42
Rev
1

To tak jakby ktoś ci dał milion dolarów, ale zamknął je w skrzynce i nie dał klucza do zamka.


Pozostało 580 znaków

2011-09-26 00:36
0
xeo545x39 napisał(a)

Dodałem jako klasę do projektu, a jaki wtedy jest modyfikator - prywatny?

Domyślnym modyfikatorem dostępu dla klas jest internal.

Jeżeli metoda jest publiczna, to znaczy, że docelowo mógłbyś chcieć ją wywołać z innego, zewnętrznego programu. Zatem wszystkie typy jej parametrów muszą być również publiczne, bo inaczej byłoby to przecież niemożliwe.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0