C#基础-----数据类型

</pre>1,基础数据类型<p></p><p><span style="font-size:14px"><span style="white-space:pre"></span></span><span style="font-size:12pt; line-height:1.8; font-family:verdana,Arial,Helvetica,sans-serif; white-space:pre"><span style="color:#000099">首先要了解一点:C#认可的基础数据类型并没有内置于C#语言中,而是内置于.net Framework中。</span></span><span style="font-size:14px"><span style="white-space:pre"><span style="margin:0px; padding:0px; font-family:verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25px"><span style="color:#000099"><span style="margin:0px; padding:0px"></span></span></span></span></span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="color:#000099">      如,在c#中声明一个int类型的数据时,声明的实际上是.net结构System.Int32的一个实例。这听起来似乎很深奥,但其意义深远<span style="white-space:pre"></span>:<span style="white-space:pre"> </span>这表示在语法上,可以把所有的基础数据类型看作是支持某些方法的类。</span></span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="color:#000099">     类型实际上仍存储为基本类型。基本类型在概念上用.Net结构表示,所以肯定没有性能损失。</span></span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt; color:red">     </span><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">下面大家一起来了解一下C#中定义的内置类型,我们将列出每个类型,以及它们的定义和对应的.net类型(CTS类型)的名称。</span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">     <span style="margin:0px; padding:0px"> c#有15个预定义类型,其中13个是值类型,两个是引用类型(string 和 object)</span></span></p><p><span style="font-size:14px"><span style="white-space:pre"></span><span style="color:#ff0000">1)整形</span></span></p><p><span style="white-space:pre"></span></p><p align="center" style="font-size:14px; margin:10px auto; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:verdana,Arial,Helvetica,sans-serif; line-height:25px"><img height="308" alt="" src="http://images.cnblogs.com/cnblogs_com/tonney/2-10.jpg" width="776" border="0" style="margin:0px; padding:0px; border:0px" /></p><p align="center" style="font-size:14px; text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif; line-height:25px"><span style="color:rgb(51,51,51); white-space:pre"></span><span style="color:#ff0000">2)浮点类型</span></p><p align="center" style="font-size:14px; text-align:center; margin:10px auto; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:verdana,Arial,Helvetica,sans-serif; line-height:25px"><span style="white-space:pre"><span style="margin:0px; padding:0px; color:rgb(51,51,51); font-family:verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25px"><span style="color:#ff0000; margin:0px; padding:0px"><img height="110" alt="" src="http://images.cnblogs.com/cnblogs_com/tonney/2-3.JPG" width="578" border="0" style="margin:0px; padding:0px; border:0px" /></span></span></span></p><p align="center" style="text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="white-space:pre"><span style="margin:0px; padding:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px"><span style="font-size:14px; line-height:25px; color:rgb(51,51,51); margin:0px; padding:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px; color:red"></span></span></span></span></span></p><p style="font-size:14px; line-height:25px; text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="white-space:pre"></span>float数据类型用于较小的浮点数,因为它要求的精度较低。</span></p><p style="font-size:14px; line-height:25px; text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="white-space:pre"></span>double数据类型比float数据类型大,提供的精</span><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">度也大一倍(15位)。</span></p><p style="text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px"><span style="white-space:pre"></span><span style="font-size:14px">如果在代码中没有对某个非整数值(如12.3)硬编码</span>,</span><span style="font-size:12pt; line-height:1.8; margin:0px; padding:0px">则编译器一般假定该变量是double。</span></p><p style="text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px"><span style="white-space:pre"></span><span style="font-size:14px">如果想指定该值为float,可以在其后加上字符F(或f),如:</span></span></p><p style="font-size:14px; line-height:25px; text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="color:#000099"><span style="margin:0px; padding:0px; line-height:1.8">  </span><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">       float f = 12.3F;</span></span></p><p style="font-size:14px; line-height:25px; text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="color:rgb(0,0,153); white-space:pre"></span><span style="color:rgb(51,51,51); margin:0px; padding:0px; font-family:verdana,Arial,Helvetica,sans-serif; font-size:14px; line-height:25px"><span style="margin:0px; padding:0px; color:red"></span></span></span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:14pt"><span style="color:rgb(0,0,153); white-space:pre"></span><span style="color:#ff0000">3)decimal类型</span></span></p><span style="color:rgb(255,0,255); margin:0px; padding:0px; line-height:1.8"><span style="margin:0px; padding:0px; background-color:rgb(49,106,197)"></span></span><p align="center" style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><img height="133" alt="" src="http://images.cnblogs.com/cnblogs_com/tonney/2-4.JPG" width="745" border="0" style="margin:0px; padding:0px; border:0px" /></p><p style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; color:rgb(255,0,255)"><span style="margin:0px; padding:0px; background-color:rgb(49,106,197)"></span></span> </p><p style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="white-space:pre"></span>decimal类型专门用于进行财务计算,使用decimal类型提供的28位的方式取决于用户。</span></p><p style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="white-space:pre"></span>要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:</span></p><p style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="white-space:pre"></span>decimal d=12.30M;</span></p><p style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"> </p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:14pt"><span style="color:#000099">   </span><span style="color:#ff0000">4)bool(布尔)类型</span></span></p><p align="center" style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; color:rgb(255,0,255)"><span style="margin:0px; padding:0px; background-color:rgb(49,106,197)"></span></span> <img height="110" alt="" src="http://images.cnblogs.com/cnblogs_com/tonney/2-5.JPG" width="746" border="0" style="margin:0px; padding:0px; border:0px" /></p><p align="center" style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"> </p><p align="left" style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="color:#000099">   </span><span style="margin:0px; padding:0px; line-height:1.8; font-size:14pt"><span style="color:#000099"> </span><span style="color:#ff0000">5)char字符类型</span></span></p><p align="center" style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><img height="112" alt="" src="http://images.cnblogs.com/cnblogs_com/tonney/2-6.JPG" width="580" border="0" style="margin:0px; padding:0px; border:0px" /></p><p align="left" style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="color:#000099">     </span><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">char类型的字变量是用单引号括起来的。     如'A'</span></p><p align="left" style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">     如果把字符把在"A"(双引号)内,编译器会把它看作是字符串,从而产生错误。</span></p><p align="left" style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8; color:rgb(0,0,255)"></span> </p><p align="left" style="margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="color:rgb(0,0,255); margin:0px; padding:0px; line-height:1.8; font-size:14pt">  </span><span style="margin:0px; padding:0px; line-height:1.8; font-size:14pt"><span style="color:#000099"> </span><span style="color:#ff0000">6)</span></span><span style="color:#ff0000"><span style="margin:0px; padding:0px; line-height:1.8; font-size:14pt; background-color:yellow">引用类型</span><span style="margin:0px; padding:0px; line-height:1.8; font-size:14pt">(Object类型和字符串类型)</span></span></p><p align="center" style="color:rgb(0,0,153); margin:10px auto; padding-top:0px; padding-bottom:0px"><span style="margin:0px; padding:0px; line-height:1.8"><img height="157" alt="" src="http://images.cnblogs.com/cnblogs_com/tonney/2-7.JPG" width="593" border="0" style="margin:0px; padding:0px; border:0px" /></span></p><div style="color:rgb(0,0,153)"><span style="margin:0px; padding:0px; line-height:1.8"><span style="font-size:18px">2、常量</span></span></div><div style="color:rgb(0,0,153)"><span style="margin:0px; padding:0px; line-height:1.8"><span style="font-size:18px"><span style="white-space:pre"></span>常量在声明和初始化变量的时候,在变量前面加上const关键字,</span></span></div><div style="color:rgb(0,0,153)"><span style="margin:0px; padding:0px; line-height:1.8"><span style="font-size:18px"><span style="white-space:pre"></span>const int i = 100</span></span></div><div style="color:rgb(0,0,153)"><span style="font-size:18px"><span style="white-space:pre"></span>常量必须在声明时初始化;常量的值必须能在编译的时候用于计算;常量总是静态的</span></div><div style="color:rgb(0,0,153)"><span style="font-size:18px"><span style="white-space:pre"></span>使用常量的好处:</span></div><div style="color:rgb(0,0,153)"><span style="font-size:18px"><span style="white-space:pre"></span>1,常量使程序变得易于阅读,使用易于读取的名称,替代了较难读取的数字或字符串</span></div><div style="color:rgb(0,0,153)"><span style="font-size:18px"><span style="white-space:pre"></span>2,常量使程序易于修改</span></div><div style="color:rgb(0,0,153)"><span style="font-size:18px"><span style="white-space:pre"></span>3,常量更容易避免程序出现错误</span></div><div style="color:rgb(0,0,153)"><span style="font-size:18px"><span style="white-space:pre"></span>常量与变量的区别:常量是指在程序的运行过程中不会放变化的,变量是指在程序的运行中随时可能发生变化的变量。</span></div><div style="color:rgb(0,0,153)"><span style="font-size:18px"></span></div><span style="font-size:18px; color:#ff0000; line-height:25px">3,算术运算符</span><p align="center" style="text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="white-space:pre"><span style="margin:0px; padding:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px"><span style="font-size:18px; color:#ff0000; line-height:25px"><span style="white-space:pre"></span></span></span></span></span><span style="font-size:12pt; line-height:1.8">加、减、乘、除、 模(求余数)</span><span style="white-space:pre"><span style="margin:0px; padding:0px"><span style="margin:0px; padding:0px"><span style="white-space:pre"></span></span></span></span></p><p style="font-size:14px; line-height:25px; text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px"><span style="font-size:24px; margin:0px; padding:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">    <span style="white-space:pre"></span>+、  -、 *、 /、 %</span></span></span></p><p style="text-align:left; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px"><span style="margin:0px; padding:0px"><span style="margin:0px; padding:0px"><span style="white-space:pre"><span style="font-size:14px"><span style="line-height:1.8"></span></span></span></span></span></span></p><p style="font-size:14px; line-height:25px; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px"><span style="font-size:24px; margin:0px; padding:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="color:#000099"><span style="white-space:pre"></span>下面来制作一个案例:交换两个数的位置,如int a=5,b=3;  现在要把它变为 a=3,b=5;</span></span></span></span></p><p style="font-size:14px; line-height:25px; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px"><span style="font-size:24px; margin:0px; padding:0px"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt"><span style="color:#000099">  <span style="white-space:pre"></span>这里有几种做法:</span></span></span></span></p><p style="font-size:14px; line-height:25px; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="margin:0px; padding:0px"><span style="font-size:24px; margin:0px; padding:0px"><span style="color:#000099"><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">   <span style="white-space:pre"></span></span><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">第一种常见做法是:</span><span style="margin:0px; padding:0px; line-height:1.8; font-size:12pt">在内存中再申请一个变量c,把a的值赋值c,</span></span></span></span><span style="color:rgb(0,0,153); font-size:12pt; line-height:1.8">然后再把b的值赋值给a,最后把c的值赋值给b;</span></p><p style="font-size:14px; line-height:25px; margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="color:rgb(0,0,153); font-size:12pt; line-height:1.8"><span style="white-space:pre"></span></span><span style="font-size:12pt; line-height:1.8; color:rgb(0,0,255)">int a=5,b=3;</span><span style="font-size:12pt; line-height:1.8"><span style="color:#000099"></span></span><span style="font-size:12pt; line-height:1.8; color:rgb(0,0,255)">int c=a;</span><span style="font-size:12pt; line-height:1.8"><span style="color:#000099"></span></span><span style="font-size:12pt; line-height:1.8; color:rgb(0,0,255)">a=b;</span><span style="font-size:12pt; line-height:1.8"><span style="color:#000099"></span></span><span style="font-size:12pt; line-height:1.8; color:rgb(0,0,255)">b=c;</span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="white-space:pre"></span>     <span style="color:#3333ff"><span style="font-size:14px">第二种做法</span><span style="font-size:18px">:</span></span><span style="color:rgb(51,51,255); font-size:14px; line-height:1.8">int a = 5, b = 3;</span><span style="font-size:14px; color:#3333ff">a = a+ b; b = b - a; a =a - b;</span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="font-size:14px; color:#3333ff"><span style="white-space:pre"></span>第三种做法: b = a + (a = b) * 0;</span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="font-size:14px; color:#3333ff"><span style="white-space:pre"></span>第四种做法:使用ref 封装成一个方法<span style="white-space:pre"></span></span></p><p style="margin:10px auto; padding-top:0px; padding-bottom:0px; font-family:verdana,Arial,Helvetica,sans-serif"><span style="font-size:14px"><span style="white-space:pre"></span></span></p><pre name="code" class="csharp"><span style="white-space:pre">	</span>private static void Swap(ref int n1, ref int n2)
        {
            int tmp = n1;
            n1 = n2;
            n2 = tmp;
        }

++:分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加一。
区别表现表达式当中,如果是前++,则先给这个变量自身加一,然后带着这个加一后的值去参与运算。
如果是后++,则先拿原值参与运算,运算完成后,再讲这个变量自身加一。
--:同上。

复合赋值运算符
int number=10;
+= :
number+=20;
number=number+20;
-=
number-=5;
number=number-5;
*=
number*=5;
number=number*5;
/=
%=


4,关系运算符

   

5,逻辑运算符

     

       逻辑运算符是用在当要判断多个条件是否满足时的情况下使用。&&和 || 是有区别的

       && [and] :当所有的条件都满意成立的时候,才成立

       ||   [or]   :当有一个条件成立时,就成立。

        如图:

逻辑与

逻辑或

 

   注意:在算术运算符、条件[比较]运算符、逻辑运算符和赋值运算符中,程序运行的先后顺序是:

          ! >    算术运算符  >  条件[比较]运算符   >    &&   >   ||   >  =

       由此可见:

                     逻辑运算符中的非 ! 运算符最高

                     算术运算符第二

                     条件[比较]运算符第三

             逻辑运算符中的与 &&  第四

                     逻辑运算符中的或者 ||  第五

                     最后,赋值运算符(=)运算的级别最低


6,数据类型转换

隐式类型转换:
我们要求等号两遍参与运算的操作数的类型必须一致,如果不一致,满足下列条件会发生
自动类型转换,或者称之为隐式类型转换。
两种类型兼容
例如:int 和 double 兼容(都是数字类型)
目标类型大于源类型
例如:double > int   小的转大的

显示类型转换:
1、两种类型相兼容  int--double
2、大的转成小的  double----int
语法:
(待转换的类型)要转换的值;
总结: 自动类型转换:int---->double 显示类型转换:double--->int
 

类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,但是,如果两个类型的变量不兼容,比如 string与int或者string 与double,这个时候我们可以使用一个叫做Convert的转换工厂进行转换。
注意:使用Convert进行类型转换,也需要满足一个条件:面儿上必须要过的去。

只有在内存存储上存在交集的类型之间才能进行隐式转换。
不能用Cast转换string/int,只能用ConvertConvert.ToInt32/Convert.ToString

类型转换Cast是在内存级别上的转换。内存中的数据没有变化,只是观看的视角不同而已

 什么情况下会发生隐式类型转换?

            1.把子类类型赋值给父类类型的时候会发生隐式类型转换。

            2.将占用字节数小的数据类型赋值给占用字节数大的数据类型可以发生隐式类型转换(前提是这两种数据类型在内存的同一个区域。)


7,三元表达式

语法:
表达式1?表达式2:表达式3;
表达式1一般为一个关系表达式。
如果表达式1的值为true,那么表达式2的值就是整个三元表达式的值。
如果表达式1的值为false,那么表达式3的值就是整个三元表达式的值。
注意:表达式2的结果类型必须跟表达式3的结果类型一致,并且也要跟整个三元表达式的结果类型一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值