Я пытаюсь выяснить, как упростить следующиеВызов функции в зависимости от типа параметра
скажем, у меня есть 2 объектные классы
public class A
{
public int Id { get; set; }
public string Name { get; set; }
public string City { get; set; }
}
И
public class B
{
public int Id { get; set; }
public string Nom { get; set; }
public string Ville { get; set; }
}
классы, которые похоже, но не то же самое.
каждый класс имеет репозиторий классов, которые он использует для CRUD операций, например ...
public class RepA
{
public static List<A> GetAll()
{
List<A> list = new List<A>();
A a1 = new A() {Id=1, Name="First A", City="Boston"};
A a2 = new A() {Id=2, Name="First B", City="Chicago"};
A a3 = new A() {Id=3, Name="First C", City="San Francisco"};
list.Add(a1);
list.Add(a2);
list.Add(a3);
return list;
}
public static void SaveAll(List<A> list)
{
foreach (A a in list)
{
Console.WriteLine("Saved Id = {0} Name = {1} City={2}",
a.Id, a.Name, a.City);
}
}
}
И
public class RepB
{
public static List<B> GetAll()
{
List<B> list = new List<B>();
B b1 = new B() {Id=1, Nom="Second A", Ville="Montreal"};
B b2 = new B() {Id=2, Nom="Second B", Ville="Paris"};
B b3 = new B() {Id=3, Nom="Second C", Ville="New Orleans"};
list.Add(b1);
list.Add(b2);
list.Add(b3);
return list;
}
public static void SaveAll(List<B> list)
{
foreach (B b in list)
{
Console.WriteLine("Saved Id = {0} Name = {1} City={2}", b.Id,
b.Nom, b.Ville);
}
}
}
Как бы я идти о том, анонимный звонок в мой репозиторий без необходимости прибегаем к этому, потому что в моем реальном мире у меня есть 100 репозиториев, а не 2.
void Main()
{
ChosenType chosentype = RandomChosenType(); //A or B
switch (chosentype)
{
case ChosenType.A:
var listA = RepA.GetAll();
RepA.SaveAll(listA);
break;
case ChosenType.B:
var listB = RepB.GetAll();
RepB.SaveAll(listB);
break;
default:
break;
}
}
Похоже, вы пытаетесь сохранить отдельную таблицу на локализацию - не очень хорошая идея. Лучше быть последовательным на бэкэнд и только локализовать для целей показа. – James
Локализация структур данных кажется плохой идеей. Не уверен, что вы выиграете от этого. Это просто сделает ваш код сложным для написания и поддержки. Действительно ли программисты могут читать каждый язык? –
Получите все классы, помещенные в список, и вызовите общие методы в соответствии с выбранным классом, перейдите в один из них в Switch и сделайте LIST как Generic Keyword и добавьте список + «ClassName» ... – Aravind