c#数据类型

值类型

整形

类型       范围                       大小

sbyte     -128到127             有符号8位整数

byte       0到255                  无符号8位整数

char        U+0000到U+ffff      16位Unicode字符

short       -32,768到32,767     有符号16位整数

ushort     0到65,535                无符号16位整数

int         -2,147,483,648到2,147,483,647               有符号32位整数

uint        0到4,294,967,295        无符号32位整数

 

long        -9,223,372,036,854,775,808到

      9,223,372,036,854,775,807      有符号64位整数

ulong        0到18,446,744,073,709,551,615            无符号64位整数

浮点型              大致范围                          精度

float                ±1.5—45到±3.4e38           7位

double              ±5.0e—324到±1.7e308       15到16位

decimal(十进制)

类型                 大致范围                                 精

度                    .NET ramework类型  

decimal             ±1.0*10e—28至±7.9*10e28         28到29位有效  

如果希望实数被视为decimal类型,请使用后缀m或M,如果没有后缀m,数字将被视为double类型,例如:decimal myMoney=300.5m;

布尔类型(bool)

布尔类型就是用来表示“真”和“假”这两个概念的,C# 中用“thrue”和“false”连个值来表示,其他任何值的表示方法都是错误的。

结构(struct)

把一系列相关的变量组成一个单一实体的过程叫做结构化过程,组成的单一实体就是结构。

例子:

        public struct PhoneBook
        {
          public String name;
          public String phone;
          public struct address
          {
            public String city;
            public String street;
          }
        }
        PhoneBook p1;

对结构成员的访问可以通过结构变量名加上访问符“.”然后在加上成员名的方式访问,例如,p1.name = "Tom";

枚举(enum)

枚举类型实际是为一组在逻辑上密不可分的整数值提供便于记忆的符号,例如声明一个代表星期的枚举变量类型:

enum WeekDay{Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};
WeekDay day;

枚举类型的变量在某一时刻只能取枚举中某一个元素的值。

枚举中的第一个元素的值为0,后面的每个元素安加1递增。在枚举中也可以给元素直接赋值,例如把星期天的值设为1,其后的元素的值分别为2,3...

enum WeekDay{Sunday=1,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday};

为枚举类型的元素所赋的值的类型限于long、int、short和byte等整数类型。

三、引用类型

类: 是一种包含数据成员、函数成员、嵌套类型的数据结构。其中数据成员包括常量、域和事件,函数成员包括方法、属性、索引指示器、运算符、构造函数和析构函数。

        Object、String 是两个常用的类。

           Object 是所有其他类型的基类,C#中所有类型都直接或间接的从Object
           中继承,因此对于一个 Object 的变量可以赋予任何类型的值。

           String 类 是专门用于对字符串的操作。

代表: 声明代表时只需要指定代表指向的原型的类型,代表不能有返回值也不能带有输出类型的参数。

  代表的示例:
               using System;

               delegate int MyDelegate();

               public class MyClass
               {
                 public int InstanceMethod()
                 {
                   Console.WriteLine("Call Instance Method");
                   return 0;
                 }
                 public static int StaticMethod()
                 {
                   Console.WriteLine("Call Static Method");
                   return 0;
                 }
               }

               public class Test
               {
                 public static void Main()
                 {
                   MyClass p = new MyClass();
                   MyDelegate d = new MyDelegate(p.InstanceMethod);
                   d();
                   d = new MyDelegate(MyClass.StaticMethod);
                   d();
                 }
               }

               输出结果为:
               Call Instance Method
               Call Static Method

数组: 是一组类型相同的有序数据。数组按照数组名、数据元素类型、数组维数来描述数组。System.Array 类是所有数组元素的基类。C# 中数组元素的下标是从 0 开始的。

          数组示例:
             int[] arr = new int[5]
             int[] arr = new int[]{1,2,3}
             int[] arr = new int[5]{1,2,3,4,5}

             int[,] arr = new int[2,2];
             int[,] arr = new int[2,3]{{1,2,3},{4,5,6}}

装箱:装箱转换是指将一个值类型隐式的转换成 Object 类型,或者把这个值类型转换成一个被该值类型应用的接口类型。

  装箱示例:
           using System;

           public class Test
           {
             public static void Main()
             {
               int i = 10;
               Object obj = i;

               if (obj is int)
               {
                 Console.WriteLine("The Value of i is Boxing!");
               }

               i = 20;

               Console.WriteLine("int i = {0}",i);
               Console.WriteLine("object obj = {0}",obj);
             }
           }

 输出结果为:
             The Value of i is Boxing!
             int i = 20
             object obj = 10;

           此例不光说明了装箱的操作同时也说明被装箱的类型的值是作为一个拷贝赋给对象的。

拆箱:拆箱转换是指将一个对象类型显示的转换成值类型,或者是将一个接口类型显示的转换成一个执行该接口的值类型。

         例如:
           int i = 10;
           Object obj = i;
           int j = (int)obj;


 
posted @ 2017-06-07 16:03  小伙子很浪  阅读(151)  评论(0编辑  收藏  举报