int? t1=null;
int t2;
t1=传来的值;
if (t1!=null)
{
t2=t1;  //报错 int 不能直接赋值 int? 型
}
if(t1!=null)
{
t2=Int32.Parse(t1.ToString()); //成功
}
输出 t2;
为什么都是int类型 缺不能直接赋值呀?

解决方案 »

  1.   

    nullable可空类型
    int? i=null;
      

  2.   

    用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!还有一个是值类型一个是引用类型,而你传来的引用可能是空而不是null,当不是null而是空的时候赋值出错
      

  3.   

    单问号---用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!双问号---用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!
    public int? para = null;
    //public int para;如果不注释掉此行,而把上一行注释掉的话,下面会报错!
    public int par()
    {
        return this.para ?? 0;
    }
      

  4.   

    int?    是可空的整型
    int t2; 是 整型要进行数据类型转换,可以这样:
    t2 = (int)t1;

    http://msdn.microsoft.com/zh-cn/library/2cf62fcy.aspx