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

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

編輯:關於C語言

我們已經知道了對象的原子性和常量性這兩個概念,那麼接下來該如何去實施呢?對於原子性,我們 實施的辦法是添加一個構造函數,在這個構造函數中為對象的所有字段賦值。而為了實施常量性,我們不 允許在為對象賦值以後還能對對象狀態進行修改,所以我們將屬性中的set訪問器刪除掉,同時將字段聲 明為readonly:

public struct Address {
    private readonly string province;
    private readonly string city;
    private readonly string zip;

    public Address(string province, string city, string zip) {
       this.city = city;
       this.province = province;
       this.zip = zip;
    CheckZip(zip);     // 驗證格式
    }

    public string Province {
       get { return province; }
    }

    public string City {
       get { return city; }
    }

    public string Zip {
       get { return zip; }
    }
    // 其余略 ...
}

這樣,我們對Address對象的創建,將所有字段的賦值都在構造函數中作為一個整體來進行;而當我們 需要改變單個字段的值時,也需要重新創建對象再賦值。我們看下下面的測試:

Address a = new Address("陝西", "西安", "710068");

try {
    a = new Address("青島", "山東", "22233");// 發生異常,對a重新賦值失敗,但狀態保 持一致
} catch {
}

Console.WriteLine(a.ToString()); // 輸出:Province: 陝西, City: 西安, Zip: 710068

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