PS. Pisząc ostatnie zdanie włąśnie zajarzyłem, że drugi parametr tej formy komponent ListBox jest definiowany automatycznie przez IDE jako private i stąd była niespójność operatorów dostępu. A skoro się namachałem to może niech zostanie dla potomnych.
Witam
Podczas robienia ćwiczenia, zaczął mi wyskakiwać błąd jak w tytule , docelowo poradziłęm sobie z nim tak, że pola typu TaliaKart i metoda która z nich korzysta oznaczyłem wszytko jako "private". Ale nie wiem dlaczego musi być tak a nie inaczej.
W przypadku gdy miałem pola TaliaKart "private" a metodę "public" ten błąd niespójności dostępu dotyczył metody, gdy wszystko oznaczyłęm jako public błąd dotyczył i pól i metody.
Szczegóły w kodzie:
public partial class Form1 : Form
{
public TaliaKart __lewaTalia__; // tu sygnalizuje błąd jak zmienię na private będzie ok
private TaliaKart prawaTalia;
public void UtworzenieDwochWymaganychTalii()
{
lewaTalia = new TaliaKart(10);
prawaTalia = new TaliaKart(enumRodzajTalii.OdDwójek);
lewaTalia.PosortujKartyWTalii();
prawaTalia.PosortujKartyWTalii();
}
public Form1()
{
InitializeComponent();
UtworzenieDwochWymaganychTalii();
WypelnijListBoxaNazwamiKartZTalii(listBox_lewy, lewaTalia);
WypelnijListBoxaNazwamiKartZTalii(listBox_prawy, prawaTalia);
}
private void WypelnijListBoxaNazwamiKartZTalii(ListBox initListBox,
TaliaKart initTalia) // zaczęło się tutaj gdy pierwotnie miałem tą metodę zdefiniowaną jako "public" a pola typu TaliaKart jako "private"
{
initListBox.Items.Clear();
foreach (string nazwaKarty in initTalia.PobierzNazwyKartWTalii())
{
initListBox.Items.Add(nazwaKarty);
}
}
}
Wyskakuje mi błąd:
Error 1 Inconsistent accessibility: field type 'HF_str386_ZabawyKartami.TaliaKart' is less accessible than field 'HF_str386_ZabawyKartami.Form1.lewaTalia' C:\Documents and Settings\Polly\Moje dokumenty\Visual Studio 2010\Projects\HF_str386_ZabawyKartami\HF_str386_ZabawyKartami\Form1.cs 14 26 HF_str386_ZabawyKartami
Nie rozumiem tego problemu, dlaczego to wszystko musi być private i dostępne tylko wewnątrz Form1?