Kompilatorfel CS0050

Inkonsekvent hjälpmedel: returtypen "typ" är mindre tillgänglig än metoden "metod"

Returtypen och var och en av de typer som refereras i den formella parameterlistan för en metod måste vara minst lika tillgänglig som själva metoden. Detta inkluderar typargument av generiska typer som används i returtypen eller parametrarna. Mer information finns i Åtkomstmodifierare.

Examples

Följande exempel genererar CS0050 eftersom ingen hjälpmedelsmodifierare har angetts för MyClass, och dess tillgänglighet är därför standard:private

// 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 kan också inträffa när en generisk typs typargument är mindre tillgängligt än metoden:

// 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>();
    }
}

Åtgärda det här felet genom att göra typargumentet minst lika tillgängligt som metoden:

// 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>();
    }
}