これは既に確認されていますが、これはまだ尋ねられていませんが、私の基本クラスにはメソッドがあります。それは私の派生クラスです。質問がある基本クラスのメソッドをオーバーライドする方法は、そのメソッドの本体を自動入力する
public MyBaseClass()
{
public virtual void MyBaseMethod()
{
return a + b;
}
}
、とVSでの方法があります - ちょうど自動投入
return base.MyMethod();
でオーバーライドされたメソッドは、それが基本法にだか何とその方法を移入するために取得するのではなくそれをテンプレートを使用して作成しますか?例えば
:
public MyDerivedClass()
{
public override void MyBaseMethod()
{
return a + b; <-- Auto-generated from body of base method
}
}
私はResharperのまたは組み込みのようなテンプレート設定することによってこれを行うことができます知っている:「foreachの」が、これはなくて一般的に起こることを取得する方法があります最初にテンプレートを作成する必要がありますか? 多くのありがとうございます。私は私のEFエンティティのための私のベースMVCコントローラをオーバーライドよどこ
UPDATE
私の特定の場合には、(実際には、これが2例である)です。 私は式をフィルタリングに使用しようとしましたが、速度があまりにも遅いため、必要に応じて、このWhere句を追加するとシンプルになりました。なぜなら、私の派生クラスはエンティティタイプが何であるかを知っているのに対し、私の基本クラスはそれをインターフェースからしか知りません。私の基本クラスで
:私の派生クラスで
public virtual IQueryable<T> onBeforeFinalSelect(IQueryable<T> results)
{
return results;
}
:
public override IQueryable<PostcodePrefixRatingMAP> onBeforeFinalSelect(IQueryable<PostcodePrefixRatingMAP> results)
{
return results
.Include(x => x.PostcodePrefix).AsNoTracking()
.Include(x => x.Rating.RatingType).AsNoTracking()
.Include(x => x.Rating).AsNoTracking();
}
UPDATE 2!
これを想像してみてください。私の派生クラスでは、私の基本メソッドをオーバーライドしています - これは本当に私が狙っているものです - 私はそれを必要とします - あらかじめ定義されたテンプレートでボディを埋めるためにオーバーライドされます。例えば
、 私の基本クラス:
public virtual IQueryable<T> GetFilterWhereClause(IQueryable<T> results)
{
return results;
}
私の派生クラス:今、これが唯一のいくつかのエンティティのために必要とされる
public override IQueryable<PostcodePrefixRatingMAP> GetFilterWhereClause(IQueryable<PostcodePrefixRatingMAP> results)
{
foreach (var item in this.DataFiltering.Filters)
{
var _intValue = 0;
switch (item.PropertyName)
{
case "Rating.RatingTypeId":
_intValue = item.Value.ToString().ToInt();
results = results.Where(x => x.Rating.RatingTypeId == _intValue);
break;
case "Rating.Description":
results = results.Where(x => x.Rating.Description == item.Value.ToString());
break;
default:
break;
}
}
return results;
}
、私の全体的な実体の小さな割合。あなたの特定のケースで
あなたのコードで基本クラスのコードを複製する必要があるのはなぜですか?これが 'base.MyMethod()'の目的です。私は利益が表示されません – Jonesopolis
派生クラスでそれを少し変更したい場合もありますが、Genericsで克服できるものではありません。私はユースケースで質問を更新します。 –
@Jonesopolis私は質問を更新しました。 –