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

Effective C#原則8:確保0對於值類型數據是有效的(1)

編輯:關於C語言

.Net系統默認所有的對象初始化時都為0。這並沒有提供一個方法來預防其他 程序員創建的值類型數據的實例在初始化是都是0。請讓你的數據類型默認值也 是0。

一個特殊情況是在枚舉類型數據中。決不要創建一個不包括0在內 的枚舉類型。所有的枚舉類型都是從System.ValueType派生的。枚舉類型的值是 從0開始的,但你可以改變這一行為:

public enum Planet
{
 // Explicitly assign values.
 // Default starts at 0 otherwise.
 Mercury = 1,
 Venus = 2,
 Earth = 3,
 Mars = 4,
 Jupiter = 5,
 Saturn = 6,
 Neptune = 7,
 Uranus = 8,
 Pluto = 9
}
Planet sphere = new Planet();

sphere此時的值就是0,而這並不是一個有效的值。枚 舉類型的取值限制在所有列舉的值中,任何依懶這一(普通)事實的代碼都將無法 工作。當你為你的枚舉類型創建你自己的取值時,請確保0是當中的一個。如果 你的枚舉類型采用的是以位(bit)模式,把0定義為其它屬性不存在時的取值。

按照現在的情況,你迫使用戶必須精確的初始化值:

Planet sphere = Planet.Mars;

這將使包含 (Planet)這一類型的其它類型很難創建:

public struct ObservationData
{
 Planet  _whichPlanet; //what am I looking at?
 Double _magnitude; // perceived brightness.
}

創建一個新ObservationData實例的用戶會創建一個不合法的 Planet成員:

ObservationData d = new ObservationData ();

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