<p>Is it possible to do like this:</p>

<pre><code>interface IDBBase {
     DataTable getDataTableSql(DataTable curTable,IDbCommand cmd);
     ...
}

class DBBase : IDBBase {
     public DataTable getDataTableSql(DataTable curTable, SqlCommand cmd) {
         ...
     }
}
</code></pre>

<p>I want to use the interface to implement to d/t providers (MS-SQL,Oracle...); in it there are some signatures to be implemented in the corresponding classes that implement it. I also tried like this:</p>

<pre><code>genClass&lt;typeOj&gt;
{
    typeOj instOj;

    public  genClass(typeOj o)
    {      instOj=o;    }


    public typeOj getType()
    {        return instOj;    }
</code></pre>

<p>...</p>

<pre><code>interface IDBBase 
{
    DataTable getDataTableSql(DataTable curTable,genClass&lt;idcommand&gt; cmd);
    ...
}

class DBBase : IDBBase 
{
    public DataTable getDataTableSql(DataTable curTable, genClass&lt;SqlCommand&gt; cmd)
    {
        ...
    }
}
</code></pre>

No it's not possible. Method should have same signature that one declared in the interface.
However you can use type parameter constraints:
```
```
interface IDBClass<T> where T:IDbCommand
{
    void Test(T cmd);
}

class DBClass:IDBClass<SqlCommand>
{
    public void Test(SqlCommand cmd)
    {
    }
}
```
```