銜接昨天的例子,首先看Student就是一個Model,當然它不是MVC所謂的Model的全貌,應該說只是Model的一種,關於名詞在此就不深究
public class Student
{
public string id { get; set; }
public string name { get; set; }
public int score { get; set; }
public Student()
{
id = string.Empty;
name = string.Empty;
score = 0;
}
public Student(string _id, string _name, int _score)
{
id = _id;
name = _name;
score = _score;
}
public override string ToString()
{
return $"學號:{id}, 姓名:{name}, 分數:{score}.";
}
}
通常應該是在Models資料夾另外建立一個cs檔案來放這個Model,不過在此就先偷懶一下直接跟Controller放在一起。
先看public string id { get; set; }這一行,這是C#提供的基本的Get(取資料)跟Set(設定資料)的方法,也有人會先定義一個private物件,再用public物件對這個private物件做Get跟Set,其實Get跟Set的方法可以有很多,不過沒時間去找這方面的資料,在此先不深究。
然後一般來說我們定義了一個class,比較好的習慣是要先給它預設值,所以我定義了兩個建構子
public Student()
{
id = string.Empty;
name = string.Empty;
score = 0;
}
這個建構子是預設的建構子,如果完全不定義任何建構子,C#好像也會給它預設值,而且印象中跟我的預設值是一樣的,C#比較不會像C++會給一個奇怪的預設值,接下來又定義了一個建構子
public Student(string _id, string _name, int _score)
{
id = _id;
name = _name;
score = _score;
}
這個建構子讓我可以直接在宣告物件的時候就帶入我要的值,可以把好幾行的程式縮在一行呼叫即可,如果沒有宣告這個建構子,原本應該是要這樣
Student student = new Student();
student.id = "1";
student.name = "小明";
student.score = 80;
有了這個建構子只要一行就可以了
Student student = new Student("1", "小明", 80);
那後面又宣告了一個ToString()方法
public override string ToString()
{
return $"學號:{id}, 姓名:{name}, 分數:{score}.";
}
在C#當中所有的物件都可以使用ToString()方法,但是一般預設的ToString出來的一定不是我想要的,所以在這裡可以將原本定義的ToString()覆蓋過去,就可以按自己要的方式來顯示內容,如果沒有定義ToString方法,原本出來的畫面會變成這樣
連專案的路徑都寫進去了,如果定義了以上的ToString方法,就會顯示出昨天那個圖
今天大概分享到這邊吧,明天再繼續分析同樣的程式