0
public class abstract animal
{
     // many fields
     public string Name {get;set;}
     public int id {get; set;}
     // method, return self
     public abstract animal getAnimalByID( int _id)
     {
         // databse connection
         //get data from database and return an animal type

         return animal; <-- cannot work, "return this" can work
     }

} 



public class dog : animal
{
     public override dog getAnimalByID( int _id)
     {
          return (dog )base.getAnimalByID( _id);
     }
}

抽象基本クラスがあり、データベースからデータを取得します。犬には動物よりも多くのフィールドと関数があり、データベースから犬のデータ型を返したいと考えています。

問題 1:

return (犬)base.getAnimalByID(_id); アクセス基底クラス エラーを返す

問題 2:

(犬)エラーも返す

4

1 に答える 1

0

2 番目のクラスでベースを使用する場合、 1 番目のクラスのメソッドを抽象として宣言することはできません。

私が要約を取り除いた後、残りはうまくいきます。

于 2012-12-25T11:44:20.690 に答える