none
对两个类型表达式很困惑 point? list<T> where T : struct RRS feed

  • 问题

  • 如题目

    第一个是函数的返回类型      point?,后面加了个问号不是什么意思

    第二个是class里面的,list<T> where T : struct 这种表达该怎么理解啊

    求解

    2014年8月27日 21:54

答案

  • 你好:

    1. 值类型后面添加问号代表可空类型,正常值类型比如int, float, struct等类型不可以为空,这造成一种不便就是,数据库中的int, float等类型是可以为空的,而.net中的int, float等类型不可以为空,相互转换的时候就会有问题。这时候可空的值类型就派上用场了。

    参考MSDN文档:

    http://msdn.microsoft.com/zh-cn/library/1t3y8s4s.aspx

    2. 这是泛型的表示方法,list<T>表示这个方法或者参数接收一个特定的类型T,where: T:struct是泛型约束,这表示这个特定的类型参数必须是结构体

    参考MSDN文档:

    http://msdn.microsoft.com/zh-cn/library/512aeb7t.aspx


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年8月28日 7:21
    版主
  • 准确的说,where T : struct 表示一种对类型参数 T 的约束。该约束需要 T 必须为值类型

    Mark Zhou

    2014年9月2日 2:46

全部回复

  • 你好:

    1. 值类型后面添加问号代表可空类型,正常值类型比如int, float, struct等类型不可以为空,这造成一种不便就是,数据库中的int, float等类型是可以为空的,而.net中的int, float等类型不可以为空,相互转换的时候就会有问题。这时候可空的值类型就派上用场了。

    参考MSDN文档:

    http://msdn.microsoft.com/zh-cn/library/1t3y8s4s.aspx

    2. 这是泛型的表示方法,list<T>表示这个方法或者参数接收一个特定的类型T,where: T:struct是泛型约束,这表示这个特定的类型参数必须是结构体

    参考MSDN文档:

    http://msdn.microsoft.com/zh-cn/library/512aeb7t.aspx


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年8月28日 7:21
    版主
  • 准确的说,where T : struct 表示一种对类型参数 T 的约束。该约束需要 T 必须为值类型

    Mark Zhou

    2014年9月2日 2:46