1

私はこのコードを持っています

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

これは不可能です?

4

3 に答える 3

5

エラーが発生する理由

Com.CompanyName = f.txtC.text

プロパティでプロパティを設定するComのではなく、オブジェクト初期化子でプロパティを設定する必要があるということです。修正は、ネストされたオブジェクト初期化子を使用して、正しいプロパティで新しいに設定することです。CompanyNameComComCompanyCompanyName

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 },
    };
于 2012-09-14T20:16:58.873 に答える
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 プロパティを設定しようとしています。

于 2012-09-14T20:16:01.090 に答える
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 }
};
于 2012-09-14T20:17:11.967 に答える