Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Accessibilità incoerente: la classe base 'Class1' è meno accessibile della classe 'Class2'
In C# una classe derivata non può avere un'accessibilità più ampia rispetto alla relativa classe di base. Se la classe base è meno accessibile, i consumatori della classe derivata potrebbero avere involontariamente accesso a una classe che non dovrebbero vedere.
Le sottoclassi non possono mai essere più accessibili rispetto alle relative classi di base. Ciò consentirebbe ai consumatori della sottoclasse un accesso più ampio al tipo di base di quello previsto.
L'esempio seguente produce CS0060 perché Class1 è internal e Class2 è public.
internal class Class1
{
}
public class Class2 : Class1 // 🛑 CS0060: Class1 is less accessible
{
}
È possibile risolvere CS0060 in uno dei due modi seguenti:
- Rendere più accessibile la classe di base: modificare
Class1in modo che siapublic. - Limitare l'accessibilità della classe derivata: modificare
Class2comeinternal.
Suggerimento
Le classi di base possono essere più accessibili rispetto alle sottoclassi, ma mai meno accessibili.