泛型与mvc控制器中的继承

时间:2012-11-04 11:02:40

标签: asp.net-mvc generics inheritance controllers

我们有许多具有非常相似功能的控制器,有很多代码重复。有一些基本控制器包含一些在所有这些中使用的代码,但大多数仍然是重复的。每个控制器都有一个构造函数,服务由城堡注入。

我在想是否可以将泛型与控制器一起使用来减少重复量。在基类中使用类似的代码并覆盖代码偏离的任何实例。

或者我可以在没有泛型的情况下执行相同的操作,并在基础中包含更多重复的代码。

什么是最好的方法以及如何在控制器中实现泛型?我猜他们也会使用接口。

1 个答案:

答案 0 :(得分:0)

如果不看应用程序,很难给出答案。但是,泛型可用于编写不同类型的可重用代码。

public class Stack<T>
{
  T[] m_Items; 
  public void Push(T item) {...}
  public T Pop() {...}
}
Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
int number = stack.Pop();

有一个类型安全的泛型。我们确保Push接受intPop将返回int。同样,你可以将它用于string等。否则,你必须使用object,在这种情况下,没有类型的保证。