CS0050-ös fordítási hiba

Inkonzisztens akadálymentesség: a "type" visszatérési típus kevésbé hozzáférhető, mint a metódus

A visszatérési típusnak és a metódus formális paraméterlistájában hivatkozott összes típusnak legalább olyan elérhetőnek kell lennie, mint maga a metódus. Ide tartoznak a visszatérési típusban vagy paraméterekben használt általános típusok típusargumentumai. További információ: Access Modifiers.

Példák

Az alábbi minta a CS0050-et hozza létre, mert nincs akadálymentesség-módosító, MyClassezért az akadálymentesség alapértelmezés szerint a következő 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 akkor is előfordulhat, ha egy általános típus típusargumentuma kevésbé elérhető, mint a metódus:

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

A hiba kijavításához tegye a típusargumentumot legalább olyan akadálymentessé, mint a metódus:

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