Compilerfehler CS0050

Inkonsistente Zugänglichkeit: Der Rückgabetyp "Typ" ist weniger zugänglich als die Methode "methode".

Der Rückgabetyp und jeder der Typen, auf die in der formalen Parameterliste einer Methode verwiesen wird, muss mindestens so barrierefrei sein wie die Methode selbst. Dies schließt Typargumente von generischen Typen ein, die im Rückgabetyp oder Parameter verwendet werden. Weitere Informationen finden Sie unter Zugriffsmodifikatoren.

Examples

Im folgenden Beispiel wird CS0050 generiert, da kein Zugriffsmodifizierer für MyClass bereitgestellt wird. Daher ist der Zugriff standardmäßig auf private festgelegt:

// CS0050.cs
class MyClass // Accessibility defaults to private.
// Try the following line instead.
// public class MyClass
{
}

public class MyClass2
{
    public static MyClass MyMethod()   // CS0050
    {
        return new MyClass();
    }

    public static void Main() { }
}

CS0050 kann auch auftreten, wenn das Typargument eines generischen Typs weniger zugänglich ist als die Methode:

// CS0050_Generic.cs
using System.Collections.ObjectModel;

internal class CeisData // Internal class
{
    public string Name { get; set; }
}

public class MyClass
{
    public static ObservableCollection<CeisData> BuildCeis()   // CS0050
    {
        return new ObservableCollection<CeisData>();
    }
}

Um diesen Fehler zu beheben, machen Sie das Typargument mindestens so barrierefrei wie die Methode:

// Fixed version
using System.Collections.ObjectModel;

public class CeisData // Now public
{
    public string Name { get; set; }
}

public class MyClass
{
    public static ObservableCollection<CeisData> BuildCeis()   // OK
    {
        return new ObservableCollection<CeisData>();
    }
}