Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there any reason to declare optional parameters in an interface?

Tags:

You can declare optional parameters in an interface method but implementing classes are not required to declare the parameters as optional, as Eric Lippert explained. Conversely, you can declare a parameter as optional in an implementing class but not in the interface.

So is there any reason to declare optional parameters in an interface? If not, why is it allowed?

Examples:

public interface IService1 {     void MyMethod(string text, bool flag = false); }  public class MyService1a : IService1 {     public void MyMethod(string text, bool flag) {} }  public class MyService1b : IService1 {     public void MyMethod(string text, bool flag = true) { } }  public interface IService2 {     void MyMethod(string text, bool flag); }  public class MyService2b : IService2 {     public void MyMethod(string text, bool flag = false) { } } 
like image 712
Jamie Ide Avatar asked Jul 19 '11 19:07

Jamie Ide


1 Answers

Example:

public interface IService1 {     void MyMethod(string text, bool flag = true); }  public class MyService1a : IService1 {     public void MyMethod(string text, bool flag) { } } 

Usage:

IService1 ser = new MyService1a(); ser.MyMethod("A"); 

2nd parameter passed to MyService1a will be true, as default parameter in interface.

like image 172
Kirill Polishchuk Avatar answered Sep 28 '22 08:09

Kirill Polishchuk