我有这个代码
private static Func<fLogin,BusinessObject.User> Make = f =>
new BusinessObject.Usuario {
Name = f.txtU.Text,
Pass = f.txtPass.Text,
};
因此。用户类就是这个。
public class User
{
public string Name {get; set; }
public string Pass {get; set; }
public Company Com {get; set; }
}
并且用户拥有公司 这是公司
public class Company
{
public string CompanyName {get; set;}
}
所以,这是问题,当我想访问公司名称时,给我错误
private static Func<fLogin,BusinessObject.User> Make = f =>
new BusinessObject.Usuario {
Name = f.txtU.Text,
Pass = f.txtPass.Text,
Com.CompanyName = f.txtC.text
};
Com.CompanyName = f.txtC.text
这是不可能的?
答案 0 :(得分:5)
你在
上收到错误的原因Com.CompanyName = f.txtC.text
是您必须在对象初始值设定项中设置Com
属性,而不是在CompanyName
属性上设置Com
属性。修复方法是使用嵌套对象初始值设定项将Com
设置为具有正确Company
属性的新CompanyName
:
private static Func<fLogin,BusinessObject.User> Make = f =>
new BusinessObject.User
{
Name = f.txtU.Text,
Pass = f.txtPass.Text,
Com = new Company { CompanyName = f.txtC.text },
};
答案 1 :(得分:2)
您应该将Com.CompanyName = f.txtC.text
更改为Com = new Company { CompanyName = f.txtC.text }
。所以字段应该如下:
private static Func<fLogin,BusinessObject.User> Make = f =>
new BusinessObject.User
{
Name = f.txtU.Text,
Pass = f.txtPass.Text,
Com = new Company { CompanyName = f.txtC.text },
};
在您的代码中,您尝试设置尚未初始化的Com
对象的CompanyName属性。
答案 2 :(得分:1)
您无法在属性初始值设定项中分配属性的属性。另外,在没有实际创建Com.CompanyName
对象的情况下分配给Company
没有意义。
private static Func<fLogin,BusinessObject.User> Make = f =>
new BusinessObject.Usuario {
Name = f.txtU.Text,
Pass = f.txtPass.Text,
Com = new Company { CompanyName = f.txtC.text }
};