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

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ć?

0

A jaki modyfikator dostępu ma KLASA XMClient?

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...

2

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

0

Dlaczego?

1

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

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.

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