Je reçois l'erreur "T ne contient pas une définition pour Id" ci-dessous dans la ligne spécifiée, même si je débogue, je vois que "article" a en effet a une propriété "Id" dans son classe de base.Comment indiquer à C# de regarder dans la classe de base d'un objet pour une propriété?
Comment puis-je spécifier ici que je veux que C# regarde dans la classe de base de l'élément pour Id (et pourquoi ne le fait-il pas automatiquement?)?
//public abstract class Items<T> : ItemBase (causes same error)
public abstract class Items<T> where T : ItemBase
{
public List<T> _collection = new List<T>();
public List<T> Collection
{
get
{
return _collection;
}
}
public int GetNextId()
{
int highestId = 0;
foreach (T item in _collection)
{
//ERROR: "T does not contain a definition for Id
if (item.Id > highestId) highestId = item.Id;
}
return highestId;
}
}
Voilà comment les classes sont définies:
public class SmartForm : Item
{
public string IdCode { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int LabelWidth { get; set; }
public int FormWidth { get; set; }
...
public abstract class Item : ItemBase
{
public int Id { get; set; }
public DateTime WhenCreated { get; set; }
public string ItemOwner { get; set; }
public string PublishStatus { get; set; }
public int CorrectionOfId { get; set; }
...
Quelle est la définition de Id dans ItemBase? On dirait que c'est privé –
Quelle est la définition de ItemBase? – cjk