• 空属类型 ?


    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);

  • 相关阅读:
    dedecms中如何去掉文章页面的广告
    织梦新建顶级栏目打不开,解决办法
    织梦dede模板中广告的去除方法?
    php 转码
    安卓插件
    计时器的实现
    json剥离
    安卓解析json
    安卓 读取网页源码
    java不用jni,也可以获得当前系统性能信息
  • 原文地址:https://www.cnblogs.com/lvfeilong/p/asdsasa.html
Copyright © 2020-2023  润新知