Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
'construct1_name' est un 'construct1', qui n’est pas valide dans le contexte donné.
Le compilateur a détecté une construction inattendue telle que :
Un constructeur de classe n’est pas une expression de test valide dans une instruction conditionnelle.
Un nom de classe a été utilisé au lieu d’un nom d’instance pour faire référence à un élément de tableau.
Un identificateur de méthode est utilisé comme s’il s’agissait d’un struct ou d’une classe
Exemples
Exemple 1
L’exemple suivant génère l’erreur CS0119 : « C.B() » est une méthode, qui n’est pas valide dans le contexte donné. Vous pouvez corriger cette erreur en modifiant le nom de la méthode C.Bou en utilisant le nom complet de la classe B comme N2.B.
namespace N2
{
public static class B
{
public static void X() {}
}
}
namespace N1
{
public class C
{
void B() {}
void M() => B.X(); // CS0119
}
}
Exemple 2
L’exemple suivant montre un scénario courant où CS0119 se produit lors de la tentative d’ajout de noms de classes à une collection de types. Le compilateur attend des Type instances, et non des noms de classes.
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;
}
}
Pour corriger cette erreur, utilisez la Type.GetType méthode ou l’opérateur typeof pour obtenir des Type instances :
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;
}
}