C는

2017-10-08 8 views
3

Remember.cs를 갖는 바르 priority는 가장 낮은 숫자입니다. Task.Priority enum r 선택한 것보다 높은 것 (높음).C는

Activator.CreateInstance은 왜 그 vars를 초기화하지 않습니까?

+2

당신이 'Activator.CreateInstance'와 관련이 있다고 생각하는 이유는 무엇입니까? 'Task task = new Remember();'와 똑같이 보일 것입니다. – hvd

답변

8

서브 클래스의 변수를 new 키워드를 통해 다시 선언하면 Task 클래스와 다른 별도의 변수 세트가 제공됩니다. 대신 Remember 클래스의 생성자에서 직접 Task 변수를 설정해야합니다. 다른 사람들이 지적했듯이

namespace Tasks 
{ 
    public class Remember : Task 
    { 
     public Remember() 
     { 
      name = typeof(Remember).Name; 
      priority = Task.Priority.High; 
     } 
    } 
} 

,이 Activator.CreateInstance과는 아무 상관이 없습니다. new Remember()을 사용하면 동일한 동작을 얻습니다.