이것은 내 마음을 불고 있습니다. 나는 다음과 같은 속성이 클래스가 :getter가있는 속성은 항상 0을 반환합니다.
여기public IEnumerable<QuestionModel> Questions { get; set; }
public int TotalQuestions
{
get
{
return Questions.Count();
}
}
public int TotalCorrect
{
get
{
return Questions.Count(x => x.Correct);
}
}
public int Score
{
get
{
return (TotalCorrect/TotalQuestions) * 100;
}
}
내가 컨트롤러에서 모델 생성 방법은 다음과 같습니다
var model = new QuizModel
{
Questions = new List<QuestionModel>
{
new QuestionModel
{
Correct = true
},
new QuestionModel
{
Correct = false
}
}
};
TotalQuestions 2. TotalCorrect 동일를 1로 동일하지만 점수는 항상 0입니다 .
나는 생각 어쩌면 다른 속성이 설정되기 전에 설정 한 점수, 그래서 나는이 시도 :
public int Score()
{
return (TotalCorrect/TotalQuestions) * 100;
}
을
내가 볼 때 Score()라고 불렀을 때 다른 속성이 확실히 설정 될 것이기 때문에이 방법이 효과가 있다고 생각했습니다. 하지만 그냥 0을 반환합니다.
또한 IEnumerable을 IList로 변경해 보았습니다. 운이 없다.
내가 어떻게 getter 및 setter의 근본적인 오해의 어떤 줄 알았는데 작업. 그것이 작업을 필요로하는 나의 기본적인 수학 능력 이었어! –
@ davidkennedy85 : 누군가가 거의 매일 이렇게 묻습니다. 매우 일반적인 "잡았다". –
나는 네가 옳은 것 같아. 그리고 그 사본을 유감스럽게 생각한다. 그러나 그런 일을 찾는 방법에 대해 어떻게 생각하세요? "C# getter returns 0"은 관련없는 백만 가지 질문을 반환합니다. "C# getter는 int 일 때 0을 반환하고 int 인 두 개의 다른 속성을 기반으로합니다."또한 매우 쓸모가 없습니다. –