空屬類型 ?

2007年8月,xx項目進行三個月後,北京同事撤回總部,自己被調到北京開發c/s模塊的一些功能.

包括 維護建議,手工派單(9月份將要開發wpf的拓補監控) ,在此處,記錄下c/s下的某些知識和自己碰到的問題和解決方法.

1:空屬類型

xx系統,用到了領域模型等概念.在其中某個對象模型的設計中,設計人員用到了 一個 很怪異的東西,如下代碼:

 /// <summary>
        /// 告警產生時間,對應消息字段event_time
        /// </summary>
        [PropertyAlias("event_time")]                                              //這個地方也是個知識點,還沒看懂,以後在記錄
        public DateTime? RaiseTime                                            //請注意這個地方的問號
        {
            get
            {
                RaiseAlarmContext context = mAlarm.RaiseAlarmContext;
                if (context != null)
                    return context.OccurTime;
                else
                    return null;
            }
        }

這個地方的問號,很怪異,問了下同事,才知道這個叫 空屬類型.

那什麼是空屬類型呢?

舉個例子:

在c#中,定義一個 值類型 DateTime tempTime;

值類型,如果沒有初始化值,系統都會有個默認值,如果在程序中沒有對這個值類型賦值而要存入數據庫,相信數據庫中的結果並不是我們希望的空,而是一個具體的值.

空屬類型,解決了這個值類型可以爲空的問題.

引用別人的解釋:(地址:http://dotnet.chinaitlab.com/CSharp/722415.html)

空屬類型簡介

 空屬類型允許一個值類型具有“空值”意義,從而方便很多場合的運算,如數據庫中的空字段。

空值類型演示:

int i = 123;
int? x = i;
double? y = x;
int? z = (int?)y;

空屬類型的幾個注意點

 空屬類型實際上是一個泛型類型
 System.Nullable。空屬類型的基礎類型就是System.Nullable的類型參數,其中T必須爲值類型。

 空屬類型如果值不爲空,可以運用同樣的基礎類型所具有的運算,如:+、 -、 *、 /

 空屬類型的HasValue屬性用來判斷類型是否爲空,如果不爲空,則可以通過Value屬性來獲取它的基礎類型的值。

2:使用反射獲取對象的屬性的屬性名

方法一:

 private PropertyInfo[] Showproperty(object a)
        {
            Type TpA = a.GetType();
            PropertyInfo[] propertyInfo = TpA.GetProperties();
            return propertyInfo;
        }


方法二:

             Attribute[] propertyAttributes = new Attribute[] { DesignOnlyAttribute.No };
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(a, propertyAttributes);

 

發佈了38 篇原創文章 · 獲贊 4 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章