今日、構造体を使用して不意を突かれた問題に遭遇しました。誰かが私のためにそれを明らかにしてくれることを望んでいました。
次のように定義された構造体があります。
public struct PaymentDetail
{
public Decimal Amount{get;set;}
public string CheckNumber{get;set;}
public PaymentType PaymentType{get;set;}
}
この情報を含むクラスがあります
public class Transaction
{
public PaymentDetail Payment{get;}
}
このような基本的なプロパティを設定したいプレゼンテーションモデルがあります
public class ViewModel
{
public Decimal Amount
{
get{return _Transaction.PaymentDetail.Amount;}
set
{
//This is the offending line of code
_Transaction.PaymentDetail.Amount = value;
RaisePropertyChanged("Amount");
}
}
}
奇妙なのは、次のように Payment プロパティを public フィールドに変更すると、これを機能させることができるということです。
public class Transaction
{
public PaymentDetail Payment;
}
これを引き起こしている構造体について私が理解していないことが明らかにあります。これは悪い考えですか?より良い方法はありますか?私は何を間違っていますか?