У меня есть метод в C#, который принимает общий тип в качестве аргумента:условный код на основе общего параметра типа с C#
private void DoSomething<T>(T param)
{
//...
}
мне нужно выполнять различные действия в зависимости от того, какой является param
из. Я знаю, что могу достичь его с несколькими if
предложениями, например:
private void DoSomething<T>(T param)
{
if (param is TypeA)
{
// do something specific to TypeA case
} else if (param is TypeB)
{
// do something specific to TypeB case
} else if (...)
{
...
}
// ... more code to run no matter the type of param
}
Есть ли лучший способ сделать это? Может быть, с switch-case
или другим подходом, о котором я не знаю?
В общем, если вы делаете что-то по своей сути специфично для типов, общий метод является неправильным инструментом. Возможно, создайте метод с перегрузками типа, который вызывает общий метод после его завершения? –
Можете ли вы объяснить, что вы пытаетесь сделать? –
это может привести к хорошему чтению [Ограничения по типам парамов] (https://msdn.microsoft.com/en-us/library/d5x73970.aspx) – MethodMan