![](/img/trans.png)
[英]Cannot Implicitly convert type 'System.Collections.Generic.list<fooClass>' to 'System.Collections.Generic.List<T>
[英]Cannot implicitly convert type 'System.Collections.Generic.List
我有这个应用程序,我试图将列表传递给另一个类。 我一直在收到错误
Cannot implicitly convert type 'System.Collections.Generic.List<eko_app.LoginForm.Business>' to 'System.Collections.Generic.List<eko_app.GlobalClass.Business>'
该列表由Json生成。
private void Connect()
{
try
{
serverUrl = "https://eko-app.com/Users/login/username:" + usernameEntered + "/password:" + passwordEntered + ".json";
var w = new WebClient();
var jsonData = string.Empty;
// make the login api call
jsonData = w.DownloadString(serverUrl);
if (!string.IsNullOrEmpty(jsonData))
{
// deserialize the json to c# .net
var response = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(jsonData);
// Get the sessionId
GlobalClass.SessionId = string.Empty;
GlobalClass.SessionId = response.response.SessionId;
if (GlobalClass.SessionId != null)
{
var businesses = response.response.Businesses;
GlobalClass.Username = "";
GlobalClass.Username = usernameEntered;
GlobalClass.Businesses = null;
GlobalClass.Businesses = businesses; **<-----error thrown here**
HomeForm homeForm = new HomeForm();
this.Hide();
homeForm.Show();
}
else
{
Console.WriteLine("Login failed");
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private class Business
{
public string businessID { get; set; }
public string businessName { get; set; }
}
private class Response
{
[JsonProperty("sessionId")]
public string SessionId { get; set; }
[JsonProperty("businesses")]
public List<Business> Businesses { get; set; }
}
private class Messages
{
public string sessionId { get; set; }
public List<Business> businesses { get; set; }
}
private class RootObject
{
public Response response { get; set; }
public Messages messages { get; set; }
}
我有另一个班:全球班
namespace eko_app
{
static class GlobalClass
{
...some code
public class Business
{
private string businessID { get; set; }
private string businessName { get; set; }
}
private static List<Business> businesses = null;
public static List<Business> Businesses
{
get { return businesses; }
set { businesses = value; }
}
}
}
我究竟做错了什么? 该错误在GlobalClass.Businesses = businesses;
的第一类中GlobalClass.Businesses = businesses;
看来您有两个相同的类,称为Business
,一个嵌套在GlobalClass
,另一个嵌套在LoginForm
。
尽管两个类看起来都相同,但它们不能彼此分配。 而且,基于这些类的集合也不能彼此分配。
考虑删除这些类之一(例如LoginForm
的私有类),并将其所有使用替换为GlobalClass.Business
。
您有两个完全不同的类,它们都恰好被命名为Business
。 一个在这里:
static class GlobalClass
{
public class Business
{
private string businessID { get; set; }
private string businessName { get; set; }
}
}
还有一个在这里:
public class LoginForm
{
private class Business
{
public string businessID { get; set; }
public string businessName { get; set; }
}
}
尽管这两个类大多相同,但它们静态编译为两个完全不同的东西。 任何数量的类似命名都不会改变它。
你可以编写方法将一个转换为另一个,但这可能只是隐藏问题而不是实际解决它。 我想您想做的就是选择哪一个是您的实际Business
类,并仅使用它。 因此,您可以弃用第二个并将Response
属性更改为:
public List<GlobalClass.Business> Businesses { get; set; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.