.NET 指南:参数的设计
本文中的這個(gè)指南有助于你為成員參數(shù)選擇正確的類型和名稱。下列文章同樣呈現(xiàn)了參數(shù)的設(shè)計(jì)指南。
- 枚舉與 Boolean 參數(shù)之間的選擇
- 使用可變數(shù)量的參數(shù)的成員。
- 指針參數(shù)
- 傳遞參數(shù)
- 驗(yàn)證參量
使用最少被獲得的并通過成員來提供必需功能的變量類型。
下列代碼范例說明了這個(gè)指導(dǎo)方針。BookInfo 類繼承自 Publication 類。Manager 類實(shí)現(xiàn)了兩個(gè)方法:BadGetAuthorBiography 和 GoodGetAuthorBiography。BadGetAuthorBiography 使用了一個(gè) BookInfo 對象的引用,盡管它只使用了在 Publication 里被聲明的成員。GoodGetAuthorBiography 方法示范了正確的設(shè)計(jì)。
// 擁有基本信息的類。 public class Publication {string author;DateTime publicationDate;public Publication(string author, DateTime publishDate){this.author = author;this.publicationDate = publishDate;}public DateTime PublicationDate{get {return publicationDate;}}public string Author{get {return author;}} }// 繼承自 Publication 的類 public class BookInfo :Publication {string isbn;public BookInfo(string author, DateTime publishDate, string isbn) :base(author, publishDate){this.isbn = isbn;}public string Isbn{get {return isbn;}} }public class Manager {// 這個(gè)方法沒有使用 Isbn 成員,因此它不需要 Books 的一個(gè)專門引用static string BadGetAuthorBiography(BookInfo book){string biography = "";string author = book.Author;// 在這里操作。return biography;}// 這個(gè)方法說明了正確的設(shè)計(jì)。static string GoodGetAuthorBiography(Publication item){string biography = "";string author = item.Author;// 在這里操作。return biography;} }不要使用被保留的參數(shù)。
庫的將來版本中能夠添加能夠獲取附加屬性的新重載。
下列代碼范例首先示范了一個(gè)違反了這個(gè)指導(dǎo)方針的錯(cuò)誤方法,然后說明了另外一個(gè)正確被設(shè)計(jì)的方法。
public void BadStoreTimeDifference (DateTime localDate, TimeZone toWhere, Object reserved){// 在這里操作。}public void GoodCStoreTimeDifference (DateTime localDate, TimeZone toWhere) {// 在這里操作。 } public void GoodCStoreTimeDifference (DateTime localDate, TimeZone toWhere, bool useDayLightSavingsTime) {// 在這里操作 }不要公開暴露獲取指針、指針的數(shù)組,或者多維數(shù)組來作為參數(shù)的方法。
在使用大部分庫的時(shí)候,明白這些高級特征應(yīng)該不是必須的。
把所有的輸出參數(shù)放到經(jīng)值傳遞的參數(shù)和 ref 參數(shù)(排除參數(shù)的數(shù)組)的后面,即使這樣做導(dǎo)致了在重載之間的參數(shù)次序出現(xiàn)矛盾。
這個(gè)約定使方法的簽名更加容易被理解。
在成員重載或?qū)崿F(xiàn)接口成員的時(shí)候保持一致的參數(shù)命名。
重載應(yīng)該使用相同的參數(shù)名稱。重載應(yīng)該使用與成員聲明相同的參數(shù)名稱。接口的實(shí)現(xiàn)應(yīng)該使用在接口成員的簽名中被定義的相同名稱。
轉(zhuǎn)載于:https://www.cnblogs.com/Laeb/archive/2007/02/01/637394.html
總結(jié)
以上是生活随笔為你收集整理的.NET 指南:参数的设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中类的继承问题04
- 下一篇: 下拉日期控件 (转)