在接口中定义一个带n个参数的方法

Ala*_*n B 1 c#

我试图定义一个实现接口的接口和类,如下所示.接口中定义的方法接受一个字符串作为参数,其中方法的myClass2实现Execute采用不遵循接口定义的2个参数.

那就是问题所在.如何在接口中定义一个方法,该方法接受各种类型的n个参数?

请指教.谢谢.

public interface MyInterface
{
     void Execute(string a);
}

public class myClass1 : MyInterface
{
     public void Execute(string a)
     {
        Console.WriteLine(a);
     }
}

public class myClass2 : MyInterface
{
     public void Execute(string a, int b)
     {
          Console.WriteLine(a);
          Console.WriteLine(b.ToString());
     }

}
Run Code Online (Sandbox Code Playgroud)

编辑:我正在考虑另一种方法.如果有人能告诉我这是否是更好的设计,我感激不尽.

public interface IParameter
{
    Type ParameterType { get; set; }
    string Name { get; set; }
    object Value { get; set; }
}

public interface MyInterface 
{
     void Execute(Recordset recordSet, List<IParameter> listParams);
}

public class MyClass : MyInterface
{
      public void Execute(Recordset recordSet, List<IParameter> listParams)
      {

      }
}
Run Code Online (Sandbox Code Playgroud)

我传递了一个IParameter列表,其中包含需要发送的所有必需参数.

Jon*_*eet 6

如果接口没有修复参数类型,调用者如何知道如何调用该方法?

你最接近的可能是:

public interface MyInterface
{
     void Execute(params object[] args);
}
Run Code Online (Sandbox Code Playgroud)

然后,接口的实现必须处理传入的任意数量的参数 - 您不能拥有处理单个int参数的实现,尽管如果args包含单个int之外的任何内容,它当然可以抛出异常.

编辑:为了清楚,这很少是一个很好的设计.在一些非常弱的类型场景中,它可能是合适的,但除此之外,通常值得尝试找到更好的东西.

如果您可以提供有关您尝试做的更多信息,我们可能会为您提供更多帮助.