我是一名初学者,刚涉及C#没多久.只有20分。不知道有没有高手可以帮我下。有人说这些问题有点钻牛角尖,汗,不是要钻,只是想弄明白,如果不彻底明白,一个模模糊糊的概念有何用?到时编写还不漏洞百出?希望有人能给我解答,哪怕只有一题!谢谢~~在自学当中,我碰到许多问题.朋友你能帮我解答下吗?非常感谢!!非常感谢至极.首先声明,关于这些问题,我都是有过长时间去找答案,但是都无功而返,绝不是碰到什么问题就连查资料也不查的问你们。还有一点,如果我问的问题过于笨了,请你们不要见怪,有可能是书上没解释清楚,也可能我过于愚蠢的原因。总之,我是抱这一颗求知的心。谢谢~~··关于单精度浮点与双精度浮点:··    在单精度后加E,双精度加F.请问他们的取值范围是如何算的?什么1.5*10^-45……1.5*10^38,哪位朋友能言简意骇的说明下?    还有一点,网上查资料如下:    ·IEEE单精度格式具有24位有效数字,并总共占用32 位。IEEE双精度格式具有53位有效数字精度,并总共占用64位。 ·    ·说明:基本浮点格式是固定格式,相对应的十进制有效数字分别为7位和17位·     也就是说,1.123456和1.123456E是一样的意思?
    1.12E3,代表的是什么意思?1.12E是单精度?而3可能是双精度或单精度?
    如果变成1.1234567还是单精度范围?而1.12345678则为双精度了??
··关于类型转换的隐式转换,我的理解是,当A类型转换为B类型,A的值必须在B类型值范围之内.对吗??··
··关于显式转换:··请问,在C#的显式转换中.
A=(byte)B;

A=convert.ToByte(B);
有什么区别吗?能告诉我,什么情况下用第一种表达式好,什么情况用第二种的CONVERT.?还是说,可以随意?而在其中,用checked和unchecked,表达式溢出时的关键字,
在C#入门经典中文版第3版的例子中,使用checked会导致崩溃??为什么?
如改成unchecked却和没有改一样.我对此非常不解,书中也没有过多解释.让我看的云里雾里的。请问这两个关键字该做何理解?
··关于枚举和结构:··说实在,这一章似乎到了难点上了,我几乎不懂枚举。枚举的作用是什么?enum one1:byte
{
one=1,
tow=2,
there=3,
}
和    “byte  one=1,tow=2,there=3;”两者有差别?或者可以理解为,枚举可以全局使用,而定义的量只能在一个镶套里运用?如果不是……汗,那我就纳闷了,两者有区别?猛地汗……关于结构,我看的有点明白了,但结构的作用到底是什么??

解决方案 »

  1.   

    枚举还是好理解的 比如56个民族对应56个号 1,2,3.
    你就可以定义成枚举了,用的时候就不用记得好的号是多少,直接 枚举名.汉族  就可以了
    把复杂的不容易记的数字 换成容易理解的汉字
    还有 你定义错误的时候  可以定义一个error枚举,里面有几条错误提示,在用的时候打error.提示语句  这样也很方便啊 。举的例子不好,希望能帮上你忙
    别的问题不敢乱说  楼下的说吧
      

  2.   

    在单精度后加E,双精度加F ??
    没听说要加E啊,只知道E用作指数表示。8好14,我菜。
      

  3.   

    谢谢yangjia21_2007,你让我对枚举有更深一点的认识了!!
    单精度和双精度我现在才明白过来...
    我本以为E是代表单精度,现在才知道是代表指数.
    谢谢大家不吝教导.谢谢
      

  4.   

    关于转换可以看下.net的强类型体系。
    按我的理解,隐式转换的前提条件是从子类型转换到基类型。
    所有符合这个条件的可以隐式转换。显示转换那个问题我理解的不深,个人感觉两种方式差不多。
    猜测可能涉及装箱和拆箱的问题。其他问题观望。
      

  5.   

    请问,在C#的显式转换中.
    A=(byte)B;

    A=convert.ToByte(B);
    有什么区别吗?能告诉我,什么情况下用第一种表达式好,什么情况用第二种的CONVERT.?还是说,可以随意?强制类型转化可以在编译的时候声明强制转换而不引起错误,是否可以转换取决于A和B的实际类型,强制类型转换成功有以下原则:
    1、类型相同的
    2、本身就符合隐式转换条件
    3、类型定义了强制转换运算符,并且在定义的可转换类型之中。convert类的转换机制是不同,他所能转换的类型是系统预定义的。从语义的角度来说,强制类型转换所转换的是相容的类型(也就是可转换的类型之间具有同构性质),而Convert应该称为变换,是一种数据类型完全变成另外一种数据类型的表达。
    //////////////////////////////////////////////////////////////////////////////////
    ··关于枚举和结构:··说实在,这一章似乎到了难点上了,我几乎不懂枚举。枚举的作用是什么?enum one1:byte
    {
    one=1,
    tow=2,
    there=3,
    }
    和    “byte  one=1,tow=2,there=3;”两者有差别?或者可以理解为,枚举可以全局使用,而定义的量只能在一个镶套里运用?如果不是……汗,那我就纳闷了,两者有区别?猛地汗……关于结构,我看的有点明白了,但结构的作用到底是什么??枚举你可以认为就是某些常量的助记名字,枚举只是定义了一个类型,而不是实例,你不能混淆类型和变量、常量,变量、常量都具有某种类型。结构是值类型的,默认在栈分配内存,一般的类是引用类型,默认在堆分配内存的,和C++完全不同,和object pascal如出一辙,到底是同一个人写的编译器。
      

  6.   

    BlueTrees(蜗牛)你讲的好详细.谢谢!!!!!!!!!!!!!!!十分感谢哦!!!!!
      

  7.   

    unchecked
    {
        int val = 2147483647 * 2;
    }
    结果val=-2,checked
    {
        int val = 2147483647 * 2;
    }
    会丢出OverflowException