程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> c#:創建常量、原子性的值類型(1)

c#:創建常量、原子性的值類型(1)

編輯:關於C語言

概述

本文是《Effective C#》一書第七節的讀書筆記。通過這篇文章,我主要想向大家說明一個我們平時 可能不太會注意到的問題:創建具有常量性和原子性的值類型。

從類型設計談起

從Class到Struct

假如我們要設計一個存儲收信人地址的類型(Type), 我們管這個類型叫 Address。它應該包含這樣幾 個屬性:

Province   省

City       市

Zip        郵編

要求對Zip的格式進行控制(必須全為數字,且為6位),大家該如何設計呢?我想很多人會寫成這樣吧 :

public class Address {
    private string province;
    private string city;
    private string zip;

    public string Province {
       get { return province; }
       set { province = value; }
    }

    public string City {
       get { return city; }
       set { city = value; }
    }

    public string Zip {
       get { return zip; }
       set {
           CheckZip(value);  // 驗證格式
           zip = value;
       }
    }

    // 檢測是不是正確的 zip
    private void CheckZip(string value) {
       string pattern = @"d{6}";
       if(!Regex.IsMatch(value, pattern))
           throw new Exception("Zip is invalid! ");
    }
    public override string ToString() {
       return String.Format("Province: {0}, City: {1}, Zip: {2}", province, city, zip);
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved