확인했습니다. 아직 요청하지 않았지만 기본 클래스에 메서드가 있습니다. 가상이며 재정의됩니다. 내 파생 된 클래스에서. 질문은기본 클래스 메서드를 재정의하는 방법 해당 메서드의 본문을 자동 채우기
public MyBaseClass()
{
public virtual void MyBaseMethod()
{
return a + b;
}
}
에 VS의 방법이 있습니다 - 단 자동 적용
return base.MyMethod();
으로 오버라이드 (override) 방법이 기본 방법이다 또는 무엇과 그 방법을 채우는 얻으려면보다는 템플릿을 사용하여 채 웁니까? 내가 ReSharper에서 또는 내장 같은 템플릿을 설정하여이 작업을 수행 할 수 있습니다 알고
public MyDerivedClass()
{
public override void MyBaseMethod()
{
return a + b; <-- Auto-generated from body of base method
}
}
:
예를 들어'foreach는'을하지만,이없이 일반적으로 일어날 얻을 수있는 방법이있다 처음부터 템플릿을 만들 필요가 있습니까? 많은 감사.
UPDATE
내 특별한 경우는 (실제로는 이가지 경우에) 내 EF 엔티티 내 기본 MVC 컨트롤러를 무시하고있어 곳입니다. 나는 표현식을 사용하여 필터링을 시도했지만 속도가 너무 느려서 필요한 경우에이 간단한 Where if 절을 추가하면이 Where 절을 추가하는 등의 간단한 작업이 필요하다. 내 파생 클래스는 Entity 타입이 무엇인지 알기 때문에 괜찮습니다. 반면 기본 클래스는 인터페이스 만 알고 있습니다. 내 기본 클래스에서
:
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();
}
업데이트 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 질문을 업데이트했습니다. –