Vous pouvez utiliser reflection pour cela.
Votre scénario pourrait ressembler un peu comme ceci:
static void Main(string[] args)
{
var list = new List<Mammal>();
list.Add(new Person { Name = "Filip", DOB = DateTime.Now });
list.Add(new Person { Name = "Peter", DOB = DateTime.Now });
list.Add(new Person { Name = "Goran", DOB = DateTime.Now });
list.Add(new Person { Name = "Markus", DOB = DateTime.Now });
list.Add(new Dog { Name = "Sparky", Breed = "Unknown" });
list.Add(new Dog { Name = "Little Kid", Breed = "Unknown" });
list.Add(new Dog { Name = "Zorro", Breed = "Unknown" });
foreach (var item in list)
Console.WriteLine(item.Speek());
list = ReCalculateDOB(list);
foreach (var item in list)
Console.WriteLine(item.Speek());
}
Si vous voulez recalculera les anniversaires de tous les mammifères. Et les Implémentations de ce qui précède sont à la recherche comme ceci:
internal interface Mammal
{
string Speek();
}
internal class Person : Mammal
{
public string Name { get; set; }
public DateTime DOB { get; set; }
public string Speek()
{
return "My DOB is: " + DOB.ToString() ;
}
}
internal class Dog : Mammal
{
public string Name { get; set; }
public string Breed { get; set; }
public string Speek()
{
return "Woff!";
}
}
Alors basiquement ce que vous devez faire est d'utiliser relfection, qui est un mechanizm pour vérifier les types et obtenir les propriétés types et d'autres choses comme ça dans le temps d'exécution . Voici un exemple sur la façon dont vous ajoutez 10 jours à la date de naissance ci-dessus pour chaque mammifère qui a reçu une date de naissance. N'oubliez pas que l'utilisation de la réflexion peut être lente et lente en général.
Cependant, le ci-dessus affichera ceci:
My DOB is: 2010-03-22 09:18:12
My DOB is: 2010-03-22 09:18:12
My DOB is: 2010-03-22 09:18:12
My DOB is: 2010-03-22 09:18:12
Woff!
Woff!
Woff!
My DOB is: 2010-04-01 09:18:12
My DOB is: 2010-04-01 09:18:12
My DOB is: 2010-04-01 09:18:12
My DOB is: 2010-04-01 09:18:12
Woff!
Woff!
Woff!
Ajustez de quelle manière? –
Ajouter un nombre d'heures. – Chin