@H_Kamol
full stack developer

Минимальный набор обязательных параметров в методе Interface в C#?

Доброго времени суток.

Имеется интерфейс с обязательным методом и с минимальным набором обязательных параметров.
Как в наследуемом классе переопределяя метод интерфейса использовать дополнительные наборы параметров ?

Пример:
interface IClass
{
// устанавливаем минимальный набор обязательных параметров
bool A(a,b,c,d);
}

// и наследуюмый класс
class MyClass : IClass
{
    // здесь нужно использовать еще и дополнительные параметры
   bool a(a,b,c,d,e)
   {
     return false
   }
}


Хотелось бы узнать лучшие практики по данному вопросу.

Заранее благодарю.
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MonkAlex
C#, SQL, Delphi, C++ etc
Вместо набора параметров в вашем случае надо использовать интерфейс\класс, тогда в наследника можно будет передавать более параметризованный интерфейс\класс и работать с ним.

Добавить именно ТРЕБОВАНИЕ новых полей нельзя. В целом такое поведение считается нежелательным, но если очень надо...:

interface IClassParam
{
string A { get; set; }
}

class ClassParam : IClassParam
{
public string A { get; set; }

public string B { get; set; }
}

interface IClass
{
bool A(IClassParam param);
}

class MyClass : IClass
{
public bool A(IClassParam param)
{
// Доступно поле А.

var extend = param as ClassParam;
if (extend != null)
{
// можно работать со свойством B
}
return true;
}
}
Ответ написан
Комментировать
yarosroman
@yarosroman Куратор тега C#
C# the best
interface IClass
{
    bool A(a,b,c,d, params object[] args);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы