Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms Forms不能隐式转换类型';system.threading.tasks.task>;到system.collections.generic.List_Xamarin.forms - Fatal编程技术网

Xamarin.forms Forms不能隐式转换类型';system.threading.tasks.task>;到system.collections.generic.List

Xamarin.forms Forms不能隐式转换类型';system.threading.tasks.task>;到system.collections.generic.List,xamarin.forms,Xamarin.forms,嗨,我是编程新手,但目前我遇到xamarin forms无法将类型“system.threading.tasks.task>隐式转换为system.collections.generic.List,因为我尝试在启动应用程序时使用全局变量来优化应用程序,同时尝试将菜单项列表设置为其他页面将访问的全局变量,它给了我那个错误。我不知道如何解决这个问题,所以请有人帮助我 这是我的App.cs private static int globalVariable = 1; public static Lis

嗨,我是编程新手,但目前我遇到xamarin forms无法将类型“system.threading.tasks.task>隐式转换为system.collections.generic.List,因为我尝试在启动应用程序时使用全局变量来优化应用程序,同时尝试将菜单项列表设置为其他页面将访问的全局变量,它给了我那个错误。我不知道如何解决这个问题,所以请有人帮助我

这是我的App.cs

private static int globalVariable = 1;
public static List<MenuItemModel> foodList = new List<MenuItemModel>();
private static List<MenuItemModel> beverageList = new List<MenuItemModel>();
public static int GlobalVariable
{
    get { return globalVariable; }
    set { globalVariable = value; }
}
public static List<MenuItemModel> FoodList
{
    get { return foodList; }
    set { foodList = value; }
}
public static List<MenuItemModel> BeverageList
{
    get { return beverageList; }
    set { beverageList = value; }
}

public App()
{
    GlobalVariable = 10;

    BeverageList = getBeverageList();
    FoodList = getFoodList();
}
public async Task<List<MenuItemModel>> getBeverageList()
{
    ConstantCS constant = new ConstantCS();
    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri("http://172.20.129.44/");


    // Add an Accept header for JSON format.
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));


    HttpResponseMessage response = new HttpResponseMessage();
    response = client.GetAsync("WebServices/menu.svc/GetBeveragesJSON").Result;

    if (response.IsSuccessStatusCode)
    {
        string jsonString = await response.Content.ReadAsStringAsync();
        dynamic dynamicObject = JsonConvert.DeserializeObject(jsonString);

        int itemId_;
        string itemName_;
        string itemCategory_;
        string itemSubCategory_;
        string itemDescription_;
        string itemImage_;
        int itemQuantity_;
        double itemPrice_;
        string itemStatus_;
        string itemAddOn_;

        for (int i = 0; i < dynamicObject.d.Count; i++)
        {
            itemId_ = dynamicObject.d[i]["itemID"];
            itemName_ = dynamicObject.d[i]["itemName"].ToString();
            itemCategory_ = dynamicObject.d[i]["itemCategory"].ToString();
            itemSubCategory_ = dynamicObject.d[i]["itemSubCategory"].ToString();
            itemDescription_ = dynamicObject.d[i]["itemDesc"].ToString();
            itemImage_ = dynamicObject.d[i]["itemImg"].ToString();
            itemQuantity_ = int.Parse(dynamicObject.d[i]["itemQty"].ToString());
            itemPrice_ = double.Parse(dynamicObject.d[i]["itemPrice"].ToString());
            itemStatus_ = dynamicObject.d[i]["itemStatus"].ToString();
            itemAddOn_ = dynamicObject.d[i]["itemRequest"].ToString();

            string itemURL_ = constant.PhotoBaseURL + itemImage_;



            beverageList.Add(new MenuItemModel(itemId_, itemName_, itemCategory_, itemSubCategory_, itemDescription_, itemURL_, itemQuantity_, itemPrice_, itemStatus_, itemAddOn_));
        }

    }
    else
    {
        //Debug.WriteLine("It entered else not if");
    }
    return beverageList;
}
private static int globalVariable=1;
public static List foodList=new List();
私有静态列表beverageList=新列表();
公共静态整数全局变量
{
获取{return globalVariable;}
设置{globalVariable=value;}
}
公共静态列表食物列表
{
获取{return foodList;}
设置{foodList=value;}
}
公共静态列表
{
获取{return beverageList;}
设置{beverageList=value;}
}
公共应用程序()
{
全局变量=10;
BeverageList=getBeverageList();
FoodList=getFoodList();
}
公共异步任务getBeverageList()
{
康斯坦茨常数=新康斯坦茨();
HttpClient=新的HttpClient();
client.BaseAddress=新Uri(“http://172.20.129.44/");
//为JSON格式添加Accept标头。
client.DefaultRequestHeaders.Accept.Add(新的MediaTypeWithQualityHeaderValue(“应用程序/json”);
HttpResponseMessage response=新的HttpResponseMessage();
response=client.GetAsync(“WebServices/menu.svc/GetBeveragesJSON”).Result;
if(响应。IsSuccessStatusCode)
{
string jsonString=await response.Content.ReadAsStringAsync();
动态dynamicObject=JsonConvert.DeserializeObject(jsonString);
int itemId;
字符串itemName;
字符串itemCategory;
字符串项子类别;
字符串项描述;
字符串项图像;
int itemQuantity;
双项目价格;
字符串itemStatus;
字符串itemAddOn;
for(int i=0;i

显示的错误将一个额外的异步方法扭曲到构造函数中:

public App()
{
    Initialize(); //no need to await this
}

public async Task Initialize()
{
    GlobalVariable = 10;

    BeverageList = await getBeverageList(); //use await here!
    FoodList = await getFoodList();         //use await here!
}
现在,您可以
等待
getFoodList()
getBeverageList()
的结果

否则将返回任务本身。这导致了你的错误:

无法将类型“System.Threading.Tasks.Task”隐式转换为 'System.Collections.Generic.List


将额外的异步方法扭曲到构造函数中:

public App()
{
    Initialize(); //no need to await this
}

public async Task Initialize()
{
    GlobalVariable = 10;

    BeverageList = await getBeverageList(); //use await here!
    FoodList = await getFoodList();         //use await here!
}
现在,您可以
等待
getFoodList()
getBeverageList()
的结果

否则将返回任务本身。这导致了你的错误:

无法将类型“System.Threading.Tasks.Task”隐式转换为 'System.Collections.Generic.List


谢谢Felix这对我真的很有帮助如果我的回答对你有帮助,请接受我的回答:xamarin表单的可能副本不能隐式转换类型“system.threading.tasks.tasks”在两个不同的帐户下不要问同一个问题两次。谢谢请参阅()Thankuu Felix it real help Me如果我的回答对您有帮助,请接受我的回答:xamarin表单的可能重复项不能隐式转换类型'system.threading.tasks.tasks'。在两个不同的帐户下,不要问同一问题两次。谢谢你真的试过这个吗?没有异步构造函数。@StephaneDelcroix你说得对。没有想到这一点。我修好了,你真的试过吗?没有异步构造函数。@StephaneDelcroix你说得对。没有想到这一点。我修好了。