這是在吹我的腦海。我有這個類具有以下屬性:屬性與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的根本誤解工作。原來,這是我的基本數學技能,需要工作! – 2013-03-18 19:50:25
@ davidkennedy85:有人幾乎每天都會問這個問題。這是一個非常常見的「陷阱」。 – 2013-03-18 19:58:07
我確定你是對的,並且對重複抱歉。但你怎麼去尋找這樣的事情? 「c#getter返回0」返回一百萬個不相關的問題。 「當它是一個int並且它基於另外兩個int類型的屬性時,c#getter返回0」也是很沒用的...... – 2013-03-18 20:01:20