上記のエラーが発生し、解決できません。少しグーグルで検索しましたが、解決できません。
シナリオ:
型のBudgetAllocate
プロパティを持つクラスがあります。budget
double
私のdataAccessLayer
、
私の授業の一つで、私は次のことをやろうとしています:
double.TryParse(objReader[i].ToString(), out bd.Budget);
次のエラーが発生します:
プロパティまたはインデクサーは、コンパイル時に out または ref パラメーターとして渡すことはできません。
私もこれを試してみました:
double.TryParse(objReader[i].ToString().Equals(DBNull.Value) ? "" : objReader[i].ToString(), out bd.Budget);
その他はすべて正常に動作しており、レイヤー間の参照が存在します。
ベストアンサー1
他の人が解決策を提示していますが、なぜこれが必要なのかについては、プロパティは単に構文上の糖衣に過ぎません。方法。
たとえば、Name
getter と setter を使用して というプロパティを宣言すると、内部ではコンパイラが実際に と というメソッドを生成しますget_Name()
。set_Name(value)
次に、このプロパティの読み取りと書き込みを行うと、コンパイラはこれらの操作を、生成されたメソッドの呼び出しに変換します。
これを考慮すると、出力パラメータとしてプロパティを渡すことができない理由は明らかです。実際には、方法
オブジェクト
への参照ではなく、 変数これは出力パラメータが期待するものです。
インデクサーについても同様のケースが存在します。