Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
"construct1_name" je konstrukt1, který není platný v daném kontextu.
Kompilátor zjistil neočekávaný konstruktor, například následující:
Konstruktor třídy není platným testovacím výrazem v podmíněném příkazu.
Místo názvu instance se použil název třídy, který odkazuje na prvek pole.
Identifikátor metody se používá, jako by šlo o strukturu nebo třídu.
Příklady
Příklad 1
Následující ukázka generuje CS0119: C.B() je metoda, která není platná v daném kontextu. Tuto chybu můžete opravit změnou názvu metody C.Bnebo použitím plně kvalifikovaného B názvu třídy, například N2.B.
namespace N2
{
public static class B
{
public static void X() {}
}
}
namespace N1
{
public class C
{
void B() {}
void M() => B.X(); // CS0119
}
}
Příklad 2
Následující ukázka ukazuje běžný scénář, kdy se cs0119 vyskytuje při pokusu o přidání názvů tříd do kolekce typů. Kompilátor očekává Type instance, nikoli názvy tříd.
using System;
using System.Collections.Generic;
public class Page_BaseClass { }
public class Page_CRTable { }
public class Page_DBGridWithTools { }
public static class PageTypeManager
{
public static List<Type> GetPageTypes()
{
List<Type> pageTypesList = new List<Type>();
// CS0119: 'Page_BaseClass' is a type, which is not valid in the given context
pageTypesList.Add(Page_BaseClass);
pageTypesList.Add(Page_CRTable);
pageTypesList.Add(Page_DBGridWithTools);
return pageTypesList;
}
}
Pokud chcete tuto chybu opravit, pomocí Type.GetType metody nebo operátoru typeof získejte Type instance:
using System;
using System.Collections.Generic;
public static class PageTypeManager
{
public static List<Type> GetPageTypes()
{
List<Type> pageTypesList = new List<Type>();
// Use typeof operator to get Type instances
pageTypesList.Add(typeof(Page_BaseClass));
pageTypesList.Add(typeof(Page_CRTable));
pageTypesList.Add(typeof(Page_DBGridWithTools));
return pageTypesList;
}
// Alternative: Load types dynamically by name
public static List<Type> GetPageTypesByName(string[] typeNames)
{
List<Type> pageTypesList = new List<Type>();
foreach (string typeName in typeNames)
{
Type type = Type.GetType(typeName);
if (type != null)
{
pageTypesList.Add(type);
}
}
return pageTypesList;
}
}