我有一个模型类,每个属性都使用模型类进行映射。
考虑模型类“ Contact
”
public class Contact
{
public Profile profileInfo { get; set; }
public bool isActive { get; set; }
}
public class Profile
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
任务相关的C#代码是
public void MapContact(ref Contact contactInfo)
{
List<Task> taskList = new List<Task>();
taskList.Add(Task.Factory.StartNew(() =>
{
contactInfo.profileInfo = client.GetProfileInfo(1);
}));
Task.WaitAll(taskList.ToArray());
}
我收到编译时错误“无法在以下语句中的匿名方法,lambda表达式或查询表达式中使用ref或out参数'contactInfo'
contactInfo.profileInfo = client.GetProfileInfo(1);
请帮助我有效地使用Task而不会出现任何编译时错误。
这里附有截图
答案 0 :(得分:2)
只需声明相同类型的局部变量Contact,然后将此局部变量传递给该任务
C#代码:
public void MapContact(ref Contact contactInfo)
{
List<Task> taskList = new List<Task>();
Contact pro = contactInfo;
taskList.Add(Task.Factory.StartNew(() =>
{ pro.profileInfo = new Profile()
{
FirstName = "Stack",
LastName = "Overflow"
};
}));
Task.WaitAll(taskList.ToArray());
}