加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

ASP.NET MVC中静态或非静态方法之间的区别

发布时间:2020-12-16 06:24:31 所属栏目:asp.Net 来源:网络整理
导读:我需要一个方法,在控制器中返回一些参数,这是它的实现: public ListParameter GetParameters(FormCollection collection) { ListParameter parameters = new ListParameter(); Liststring parameterNames = new Liststring(); //Get Parameters Names and V
我需要一个方法,在控制器中返回一些参数,这是它的实现:

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;
    }

我在所有控制器中使用这个方法,所以我想我必须定义它的3个选项:

1 – 对于任何控制器类,在该控制器中定义它,如下所示:

public class ProductController : Controller {

   public List<Parameter> GetParameters(FormCollection collection) {

   //

    }
  }

2 – 在静态类中将其定义为静态方法:

public static class GeneralMethods {

   public static List<Parameter> GetParameters(FormCollection collection) {

   //

    }
  }

3 – 将其定义为无静态:

public class GeneralMethods {

   public List<Parameter> GetParameters(FormCollection collection) {

   //

    }
  }

哪一个更好?哪一个有更好的表现?或许多控制器中使用的定义方法的任何其他选项?
你的建议是什么?

解决方法

三者中的任何一个都不会对性能产生影响. (虽然最后一种方法每次都会创建单独的对象,但它会由GC优雅地处理).

方法1:不,作为标准做法,我们不应该复制代码.

方法2:是,如果您的方法仅取决于输入参数.

方法3:是的,如果你需要设置一些实例变量,你的方法取决于它们.

建议的方法:(方法1方法3)
如果此方法对所有控制器(或大多数)都是通用的,请使用此方法声明基本控制器并从中继承所有其他控制器.

静态方法不会成为问题,因为在方法中声明的任何变量都在方法的范围内.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读