2014-12-10 4 views
0

Я хочу создать интерфейс, который имеет метод по умолчанию (сохранить, обновить, удалить, выбрать, выбратьByID) для всех классов, которые наследуют этот интерфейс. Как я могу создать метод в интерфейсе, который может принимать любое имя класса с объектом.Мастер-интерфейс для всех классов

interface IMasterActions 
{ 
int Save(Class_Name obj); 

int Update(Class_Name obj); 
} 


pubic class Student 
{ 
public int RollNo{get;set;} 
public String Name{get;set;} 
} 


public class Book 
{ 
public String Author{get; set;} 
pubic decimal Price{get; set;} 
} 


public class StudentManager:ImasterActions 
{ 
    public int Save(Student std) 
    { 
    ........ 
    } 
} 


pubic class BookManager:IMasterActions 
{ 
public int Save(Book book) 
{ 
    ............. 
} 
} 
+2

не Если метод не принимают параметр вообще? Или даже «IMasterAction»? Зачем ему нужно «Class_Name»? Я не понимаю, о чем вы спрашиваете. – BradleyDotNET

+0

Для чего нужен общий интерфейс для IMasterActions? Вам нужна коллекция IMasterActions или вы хотите создать метод, который принимает произвольный IMasterAction? – HugoRune

ответ

4

Вы должны использовать общие для динамического характера реализации интерфейса. Ваш интерфейс и реализации будут определены следующим образом:

public interface IMasterActions<T> where T : class 
{ 
    int Save(T obj); 

    int Update(T obj); 
} 

public class StudentManager:IMasterActions<Student> 
{ 
    public int Save(Student std) 
    { 
     ... ..... 
    } 
} 
+0

Спасибо. Это то, что я искал. –

0

Для достижения этой цели вы можете использовать дженерики.

interface IMasterActions<T> 
{ 
int Save(T obj); 

int Update(T obj); 
} 

public class StudentManager:ImasterActions<Student> 
{ 
    public int Save(Student std) 
    { 
    ........ 
    } 
} 

Подробнее здесь: http://msdn.microsoft.com/en-us/library/kwtft8ak.aspx

Смежные вопросы