2016-07-12 3 views
-2

スーパークラスとサブクラスがあります。データセットの値をサブクラスのプロパティ値に割り当てます。

public class Fee 
{ 
    public decimal Dollar { get; set; } 
    public decimal Percentage { get; set; } 
} 

public class AdminFee : Fee 
{ 

} 

そして私はまた、別のクラス

public class TypeFee 
{ 
    public AdminFee AdminFees { get; set;} 
} 

を持っていると私はそれadminFeesへのDataRow値を割り当てます。 の値を割り当てると、両方の実行時にキャストエラーまたはadminfeesフィールドのNULL値が取得されました。

Fee addfee = new Fee(); 
addfee.Dollar = Convert.ToDecimal(row["AdminFee"]); ////no error 

TypeFee tfee = new TypeFee(); 
tfee.AdminFees = (AdminFee)addfee; ////cast error 
tfee.AdminFees.Dollar = addfee.Dollar; ////null error 

このエラーを解決するにはどうすればよいですか?

+3

適切にフォーマットされ、[MCVE]を提供してください - 現在、あなたのコードは非常に読みにくいですし、些細なミス(代わりにクラス宣言の最後に 'public'、'() 'の' Public')を持っていますこれは*あなたが実際にテストしているコードではないことを示しています。また、.NET命名規則に従うように強くお勧めします。 –

+0

コードをコピーするのではなく、モバイルから入力するだけです。後で編集します。 – Parami

+1

今後はしないでください。なぜあなたが良いものを書くことができるまで待つのではなく、みんなにひどく書かれた質問をするのはなぜですか? –

答えて

0

多くのタイプミスやコーディングエラーがありました。

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 



namespace ConsoleApplication2 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      TypeFee tfee = new TypeFee(); 
      AdminFee addfee = new AdminFee(); 
      tfee.adminFees = (AdminFee)addfee; 
      tfee.adminFees.dollar = addfee.dollar; 
     } 
    } 
    public class Fee 
    { 
     public decimal dollar {get;set;} 
     public decimal percentage {get;set;} 
    } 
    public class AdminFee :Fee 
    { } 
    public class TypeFee 
    { 
     public AdminFee adminFees {get;set;} 
    } 
} 
+0

これは価値がありません非常にひどく形成された質問に答える、IMO。私たちは問題のどれがOPの*実*コードにあったのかを知ることはできません。なぜなら、コピー/貼り付けをすることなく携帯電話に質問を書くことにしたからです。 –

+0

まず、すべての愚かなタイプミスを取り除く方が良いでしょう。他の問題はないかもしれません。 – jdweng

+0

それがポイントです。これが、* OP *が質問を投稿する前にすべきだったことです。それは単なる悪い質問です。これらの誤植のどれが実際のコードに含まれているのかわかりません。悪い質問への挑戦はサイトに長期的なメリットはなく、怠惰なIMOを奨励します。 –

関連する問題