Как создать интерфейс метода с переменными параметрами / разными сигнатурами метода?

Я пытаюсь создать интерфейс для общего класса, но классы реализации могут иметь разные параметры.

например,

public interface IViewModel
{
    //...
    void ResetReferences(); 
}

// and then, in my class implementations, something like this:
public class LocationViewModel : IViewModel
{
    public void ResetReferences(List<StateProvinces> stateProvinces) //...
}

public class ProductViewModel : IViewModel
{
    public void ResetReferences(List<Color> colors, List<Size> sizes) //...
}

Обратите внимание, что я хочу стандартизировать "RestReferences" " соглашение об именовании. Я почти уверен, что не могу этого сделать, но есть ли шаблон проектирования, который мог бы работать? например в моем интерфейсе что-то вроде ниже?

// variable parameters
void ResetReferences(params object[] list); 

Но тогда как мне заставить меня выполнять проверку типов или вызывать фактическую сигнатуру метода, которую я хочу, и т. Д.

Может быть, интерфейс не подходит для использования? Может быть, это просто базовый класс и некоторые соглашения о кодировании?

Спасибо,

15
задан John Saunders 24 May 2011 в 17:39
поделиться