Model view controller 如何在mvc控制器中全局声明变量的var关键字

Model view controller 如何在mvc控制器中全局声明变量的var关键字,model-view-controller,global,var,Model View Controller,Global,Var,我想为mvc控制器中的变量全局声明var关键字 因为我多次使用该变量,所以我想将该变量用作全局变量。 但我不知道var是如何被全局执行的,因为var是不同的类型,根据字符串,int,decimal来全局放置 要了解更多信息,请参阅代码 var query = new List<T>(); if (model.CategoryId == -1) { query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true).T

我想为mvc控制器中的变量全局声明var关键字 因为我多次使用该变量,所以我想将该变量用作全局变量。 但我不知道var是如何被全局执行的,因为var是不同的类型,根据字符串,int,decimal来全局放置

要了解更多信息,请参阅代码

var query = new List<T>();
if (model.CategoryId == -1)
{
   query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
else
{
   query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true && w.CategoryId == model.CategoryId).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
var dataList = (from x in query
    select new
    {
    })

现在,查询变量在代码中被多次使用。现在,我想全局声明这个查询变量。这是我尝试过的最新代码。在这个错误中,代码中用红线表示。

首先,您的全局定义不清楚。您是要对一个类使用查询实例,还是要对一个类生成的所有类使用查询实例

第二,如果你想使用全局变量,你应该像这样定义你的全局变量

List<dynamic> query=new List<dynamic>(); 
当然,这种方法不是用c动态使用的健康方法

顺便说一下,您不能在out of函数中使用var关键字。您必须在类级别使用特定类型的变量destination

public class MyTestClass
{
 List<dynamic> query=new List<dynamic>(); 

public MyTestClass()
{
}

public void generateQuery()
{

if (model.CategoryId == -1)
{
query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
else
{
   query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true && w.CategoryId == model.CategoryId).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
var dataList = (from x in query
    select new
    {
    })

}
}
}
在类级别定义变量

在给定的代码中,我尝试在类级别定义全局变量

public class MyTestClass
{
 List<dynamic> query=new List<dynamic>(); 

public MyTestClass()
{
}

public void generateQuery()
{

if (model.CategoryId == -1)
{
query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
else
{
   query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true && w.CategoryId == model.CategoryId).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
}
var dataList = (from x in query
    select new
    {
    })

}
}
}
让我们试着介绍另一种方法

将生成的类的变量用作全局变量

此时,您可以在祖先类中定义全局变量

public class MyAncestorClass
{

    List<dynamic> query=query=new List<dynamic>(); 

}


public class MyChildClass:MyAncestorClass
{

 public void generateQuery()
    {

    if (model.CategoryId == -1)
    {
    query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
    }
    else
    {
       query = _Db.Purchase.Where(w => w.IsIncludeIntoStock == true && w.CategoryId == model.CategoryId).ToList().GroupBy(x => new { x.ManufacturerId, x.CategoryId, x.Weight, x.WeightTypeId }).ToList();
    }
    var dataList = (from x in query
        select new
        {
        })

    }
    }

}