기본 클래스에서 파생 된 두 개의 클래스가있는 경우 두 클래스의 상속 된 속성을 조작 할 수있는 제네릭 메소드를 작성하는 방법을 사용하므로 두 개를 쓸 필요가 없습니다. 방법 ...기본 유형을 메소드로 전달
abstract class BaseClass
{
public int Id { get; set; }
public string slug { get; set; }
}
public class State:BaseClass
{
public string StateName{ get; set; }
public string Description { get; set; }
}
public class City:BaseClass
{
public string TownName { get; set; }
public string someOtherProperty{ get; set; }
}
은 "일반적인"방법 :
string a = Slugify(my_State_object); <--- not working
string b = Slugify(my_City_object); <--- not working
감사 Y :
public string Slugify(?????BaseClass???? record)
{
return record.slug = "...return...something...";
}
같이 호출
우!편집 : 주 및시는 EF-CodeFirst 클래스입니다. 처음에는 이드와 슬러그 필드가있었습니다.
그런 다음이 두 가지 (및 다른) 테이블에있는 기본 클래스로 만들었습니다. 나에게 "... 일부 무효를주고 모두 호출
Slugify(text, my_State_object);
뿐만 아니라
Slugify(otherText, my_City_object);
처럼라는
public string Slugify(string p, System.Data.Entity.DbSet<Models.BaseRecords> dbSet){ return ...}
:
내가 좋아하는 슬러그를 반환하는 방법을 원한다 인수 ... "오류가 발생했습니다.
public string Slugify(BaseClass record)
{
return record.slug = "...return...something...";
}
문제는 당신의 BaseClass로가 아이로 접근 할 수 있어야한다는 것입니다 :
죄송합니다,이 독일어 VS2010
왜 매개 변수의 형식으로 BaseClass를 사용할 수 없습니까? –
Slugify 메서드는 파생 클래스 속성에 대한 액세스가 필요합니까? 현재는 기본 클래스의 멤버이고 따라서 완전히 합법적 인 슬러그 만 액세스합니다. – MattDavey
"작동하지 않음"을 정의하면 우리가 아마도 당신을 도울 수 있습니다. –