Daha fazla
- Cinsiyet
- Erkek
- Meslek
- König
Merhaba. Interface lerle ilgili bir sorum var. Eğer iki sınıf birbiriyle aynı metotlara sahipse, aynı işleri yapıyorsa ve aynı interface den miras alıyorsa, ama farklı parametrelere ihtiyaç duyuyorsa bunun hakkında ne yapabiliriz? Aşağıda bir örneğini verdim. Oracle sınıfı ve MSSQL sınıfı aynı işi yapıyor ama aralarında sadece tek bir fark var, biri OracleCommand, biri SQLCommand nesnesine ihtiyaç duyuyor.
C#:
class MetotlariCagiracagimizClass
{
public void RunProcedure(IDataBase IDB)
{
IDB.RunProcedure(//VerilenParametreler//)
}
}
class MSSQL : IDataBase
{
public void RunStoredProcedure(ref SqlCommand cmd, string SPName, string[] ParameterNames, object[] Values)
{
//MSSQL sınıfı normal çalışıyor.
}
}
class OracleSQL : IDataBase
{
public void RunStoredProcedure(ref SqlCommand cmd, string SPName, string[] ParameterNames, object[] Values)
{
//Burada Oracle serveri, mesela SQLCommand yerine OracleCommand diye bir sınıfa ihtiyaç duyuyor olsun. Ama biz ona SQLCommand vermek zorunda kaldık.
}
}
interface IDataBase
{
void RunProcedure(ref SqlCommand cmd, string SPName, string[] ParameterNames, object[] Values);
}