끔찍한 제목에 사과, 나는 더 좋은 방법으로 생각할 수 없었다.추상베이스의 생성자에서 새 파생 형식 만들기
필자는 기본적으로 추상적 인 기본 클래스 Category
을 가지고 있으며 파생 클래스 전체를 상속 받고 있습니다. myCategoryTypeString
항상 파생 클래스 중 하나의 이름과 대신 그 파생 클래스의 새로운 객체를 생성해야합니다
List<Category> catList = new List<Category>();
catList.Add(new Category(myCategoryTypeString));
은 (아마도에 스위치를 사용 : 그것의 라인을 따라 뭔가를 할 수 있나요 문자열을 사용하여 사용할 클래스를 결정하십시오.)
그래서의 라인을 따라 뭔가가 :catList.Add(new Category("Engineering"));
목록에 Engineering : Category
유형의 새 개체를 추가 하시겠습니까?
이것이 가능한 경우 어떻게하면됩니까? 내 추상 클래스는 thusly 히 정의 :
abstract class Category
{
private string line;
private bool ToChallenge;
private string[] columns;
private int oppLevel;
protected Category(string line)
{
this.line = line;
columns = line.Split(',');
}
public abstract bool IsAnomoly();
public abstract void CategoriseAnomoly();
public abstract void WriteLine();
}
* 가능하지만 코드 접근법은 코드 냄새를 나타냅니다. 늦은 바인딩 접근 방식을 사용 하시겠습니까? 컴파일 타임 검사의 이점을 잃어 버리면 오류가 발생하게됩니다. –
솔직히 말해서 나는 필요하지 않습니다. 무엇보다 더 많은 것이 가능할 지 궁금합니다. –
너무 빨리 닫아서는 안됩니다. 임씨는 "문자열을 클래스 이름으로 변환"과 관련이없는 제네릭 솔루션이 있다는 것을 확신합니다. – Udontknow