1) C# is case sensitive:
Interface
is not the same as
interface
- you need the latter.
2) If I correct that and implement your code, I get what I expect:
internal class IDbDataParameter { }
internal interface I1
{
IDbDataParameter[] TransformParameters(IDbDataParameter[] parameters);
IDbDataParameter[] TransformParameters(IDbDataParameter[] parameters, string str);
}
internal class C1 : I1
{
public IDbDataParameter[] TransformParameters(IDbDataParameter[] parameters)
{
Debug.WriteLine("In 1 param");
return new IDbDataParameter[0];
}
public IDbDataParameter[] TransformParameters(IDbDataParameter[] parameters, string str)
{
Debug.WriteLine("In 2 param");
return new IDbDataParameter[0];
}
}
C1 c1 = new C1();
c1.TransformParameters(new IDbDataParameter[0]);
c1.TransformParameters(new IDbDataParameter[0], "Hello World");
In 1 param
In 2 param
Are you sure your original code compiled error free and you weren't running an earlier version?