Błąd kompilatora CS0524

"type" : interfejsy nie mogą deklarować typów

Przed wersją C# 8.0 interfejs nie może zawierać typów zdefiniowanych przez użytkownika. Począwszy od języka C# 8.0, interfejsy mogą deklarować zagnieżdżone typy w ramach funkcji domyślnych elementów członkowskich interfejsu.

W nowoczesnym języku C# (C# 8.0 i nowszych) ten błąd nie jest już generowany dla typów zagnieżdżonych w interfejsach. Kompilator umożliwia teraz interfejsom zawieranie zagnieżdżonych klas, struktur, interfejsów, wyliczenia i delegatów.

Przykład historyczny

Poniższy przykład generuje cs0524 w wersjach języka C# wcześniejszych niż 8.0, ale jest prawidłowy w nowoczesnych wersjach języka C#:

// This code is valid in C# 8.0 and later
public interface IExample  
{  
    public class NestedClass   // Valid since C# 8.0
    {  
    }  
}  

Zobacz także