Не знаю, задавался ли этот вопрос раньше, поэтому укажите мне на другой вопрос, если он задан.
У меня есть такой метод:
private void SomeMethod<TLocation>(int x, int y) where TLocation : DataLocation
{
//
}
В методе, с которым я хочу вызвать его, у меня есть enum , и я хочу вызвать метод с параметром типа.
public enum LocationType
{
Country,
State,
County,
City,
Neighborhood,
Street
}
Типы расположения данных:
DataCountry
DataState
DataCounty
DataCity
DataNeighborhood
DataStreet
Зная, что параметром типа является "Data" + enum name, есть ли способ, которым я могу динамически вызывать мой метод?
Или я должен придерживаться:
switch (locationType)
{
case LocationType.Country:
SomeMethod<DataCountry>(1, 2);
break;
case LocationType.State:
SomeMethod<DataState>(2, 4);
break;
// etc
}
EDIT:
Похоже, отражение - единственный способ. Я буду придерживаться переключателя.