shawind 发表于 2007-11-17 18:58:16

就是用__traits吧,可以在编译期获得一些类型方面的信息。
TraitsExpression:
    __traits ( TraitsKeyword , TraitsArguments )

TraitsKeyword:
    isAbstractClass
    isArithmetic
    isAssociativeArray
    isFinalClass
    isFloating
    isIntegral
    isScalar
    isStaticArray
    isUnsigned
    isVirtualFunction
    isAbstractFunction
    isFinalFunction
    hasMember
    getMember
    getVirtualFunctions
    classInstanceSize
    allMembers
    derivedMembers
    isSame
    compiles

TraitsArguments:
    TraitsArgument
    TraitsArgument , TraitsArguments

TraitsArgument:
    AssignExpression
    Type

http://www.digitalmars.com/d/traits.html
有例子。同样,没真正用过。别说这个功能,整个D2.0我都没有用过。

和C不一样,D的switch可以直接用字符串,听别人说,在编译的时候,会把字符串自动排序,然后用二分法完成搜索的,所以效率还可以。我想,在D里面,应该不一定要像C一样弄出来那么多枚举来完成条件分岐吧。

rednaxela 发表于 2007-11-17 23:49:59

C#同样支持string类型的switch。内部机制一般是编译时算出hash表,运行时做的是hash比较。

shawind 发表于 2007-11-18 13:16:51

但是c#的程序第一次启动有点慢,MS干脆把.net的内核和windows的内核做在一起算了。
与其把资源浪费在华丽的界面上,不如浪费在这上面。

rednaxela 发表于 2007-11-18 14:44:59

近来的Vista是内置.NET Framework 3.0和IIS 7。我不太清楚到底是在什么时刻上CLR才会整个启动……

shawind 发表于 2007-11-18 18:15:19

没用过Vista。只有以前用2003的时候,这个自带了了1.x的系统,和xp下装.net没什么区别—.—
页: 1 2 [3]
查看完整版本: [很麻烦]opengl,step 0