Appel fonction hérité / Polymorphisme
Bonjour,
je suis un peu perdu concernant l'appel de fonction d'une classe hérité.
j'ai une classe de base contenant une fonction
Code:
1 2 3 4 5 6 7 8
|
public abstract class SCCMObject : IResultObject
{
............
public static virtual void SetObjectPath(List<SCCMObject> lstToCompare, WqlConnectionManager connection)
{....}
} |
Je possède une classe hérité et je souhaite appeler la fonction SetObjectPath qui appartient à la classe SCCMObject
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
public class SCCMAdvertisement : SCCMObject
{
.....
public static List<SCCMAdvertisement> GetAllAdvertisements(WqlConnectionManager connection)
{
SCCMAdvertisement objRet = new SCCMAdvertisement();
List<SCCMAdvertisement> lstAdvlReturn = new List<SCCMAdvertisement>();
foreach (IResultObject resObj in objRet.GetAllObjects(connection))
{
SCCMAdvertisement tmp = new SCCMAdvertisement(resObj);
lstAdvlReturn.Add(tmp);
}
//Appel de ma fonction hérité
SetObjectPath(lstAdvlReturn, connection);
return lstAdvlReturn;
}
} |
cependant je me retrouve avec le message d’erreur suivant avant la compilation
Citation:
Erreur 2 La méthode surchargée correspondant le mieux à '.Objects.SCCMObject.SetObjectPath(System.Collections.Generic.List<Objects.SCCMObject>, Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine.WqlConnectionManager)' possède des arguments non valides
Erreur 3 Argument 1*: impossible de convertir de 'System.Collections.Generic.List<Objects.SCCMAdvertisement>' en 'System.Collections.Generic.List<Objects.SCCMObject>'
En gros je comprend que je dois fournir une liste de SCCMObject au lieu d'une liste de SCCMAdvertisement .
Mais pour moi un SCCMAdvertisement "est" un SCCMObjet. Y'a il une faute dans ma déclaration ou ma logique est elle mauvaise ?
Merci pour votre aide 8-)