Sae*_*eid 4 asp.net asp.net-mvc static asp.net-mvc-3
我需要一个方法,在控制器中返回一些参数,这是它的实现:
public List<Parameter> GetParameters(FormCollection collection) {
List<Parameter> parameters = new List<Parameter>();
List<string> parameterNames = new List<string>();
//Get Parameters Names and Values
return parameters;
}
Run Code Online (Sandbox Code Playgroud)
我在所有控制器中使用此方法,所以我想我必须定义它的3个选项:
1 - 对于任何控制器类,在该控制器中定义它,如下所示:
public class ProductController : Controller {
public List<Parameter> GetParameters(FormCollection collection) {
//
}
}
Run Code Online (Sandbox Code Playgroud)
2 - 在静态类中将其定义为静态方法:
public static class GeneralMethods {
public static List<Parameter> GetParameters(FormCollection collection) {
//
}
}
Run Code Online (Sandbox Code Playgroud)
3 - 将其定义为无静态:
public class GeneralMethods {
public List<Parameter> GetParameters(FormCollection collection) {
//
}
}
Run Code Online (Sandbox Code Playgroud)
哪一个更好?哪一个有更好的表现?或许多控制器中使用的定义方法的任何其他选项?你的建议是什么?
三者中的任何一个都不会对性能产生影响.(虽然最后一种方法每次都会创建单独的对象,但它会由GC优雅地处理).
方法1:不,作为标准做法,我们不应该复制代码.
方法2:是,如果您的方法仅取决于输入参数.
方法3:是的,如果你需要设置一些实例变量,你的方法取决于它们.
建议的方法:(方法1+方法3)如果此方法对所有控制器(或大多数)都是通用的,则使用此方法声明基本控制器并从中继承所有其他控制器.
静态方法不会成为问题,因为在方法中声明的任何变量都在方法的范围内.
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |