public void DoSomething(ISomeData data) { if (data is SomeActualData) { HandleThis((SomeActualData)data); } else if (data is SomeOtherData) { HandleThis((SomeOtherData)data); } //... else { throw new Exception(); } }
public void DoSomething(ISomeData data) { dynamic specificData = data; HandleThis(specificData); }