• C#数据类型


    类型可分为:值类型,引用类型
         值类型:直接存放真正的数据,值类型都有固定的长度,值类型的变量都保存在
    堆栈(stack)上。作为值类型的变量,每个都有自己的数据,因此对一个变量的操作不会影响其他变量。

        引用类型:存储读数据的内存地址的引用,位于受管制的堆(Heap)上作为引用类型的变量可以引
    用同一对象;因此对一个变量的操作会影响另一个变量所引用的同一对象。

    值类型可分为3大类:
          基本型:
          整型
          int
            如:int i=123; //也可以写为:System.Int32 i=123;
          long
             如: long myLong=123;  //int型隐式转换为long型
         char
              如:char mychar='A'
         sbyte  byte   short   ushort uint ulong
       注意:(1) 书写一个常数时(如:23),默认为整型,若要表示非整型,可以用显式转换:
       如:sbyte k=1;
           int i=2;
           k=(sbyte)i;  //显式转换
           i=k;         //隐式转换
          (2) 不同整型转换原则:小范围类型可以隐式转换为大范围类型,大范围类型转换
        为小范围类型时要使用显式转换。


    浮点型
              float类型:32位浮点数,取值范围在
    double类型:64位浮点数,取值范围在

          布尔型 bool
              true  false
              
          
            结构型
             struct 
                       如 public struct Point
                                {
                                    int x;
                                     int y;
                                     string s;
                                  }
    结构和类的区别:
        结构是一个值类型(在栈上),而类是一个引用
    类型(在堆上)。

    枚举型

      enum类型
    常用形式有:
       enum days {Sun,Mon,Tue,Wed,Thu,Fri, Sat};
          //第一个成员值默认为0,第二个为1,……
       enum days {Mon=1,Tue,Wed,Thu,Fri, Sat, Sun };
          //第一个成员值从1开始
         enum days {mon=1,wed=3,sun,thu=8};
    enum类型的使用示例:
    class Test
     {
      enum days {Sun,Mon,Tue,Wed,Thu,Fri,Sat};
      static void Main()
      {
       Console.WriteLine(days.Wed);
       days myday=days.Fri;
       Console.WriteLine(myday);
       Console.Read();
      }
     }

    引用类型

        引用类型包括:类、接口、数组、委托 等。

              string类型

                string myString = "some text";
                char chFirst = myString[2];  //结果为m
             当比较两个字符串是否相等时,可以直接使用“==”比较操作符。
             当比较两个字符串大小时,可以使用string. Compare方法,其返
          回值有-1,0,1三种可能。
    常用格式举例:
    (1)  int i=12345;
           this.textBox1.Text=i.ToString();
    (6) DateTime dt =new DateTime(2003,5,25);
        this.textBox1.Text=dt.ToString("yy.M.d");
             //结果 03.5.25
        this.textBox2.Text=dt.ToString(“yyyy年M月”);
             //结果 2003年5月
    (7)   int i=123;
             double j=123.45;
            string s=string.Format("i:{0,-7},j:{1,7}",i,j);
             //-7表示左对齐,占7位
         this.textBox1.Text=s ; 
             //结果i:123    ,j: 123.45

             //结果 12345(this指当前对象,或叫当前类的实例)
           this.textBox2.Text=i.ToString("d8");
             //结果 00012345
    (2) int i=123;
        double j=123.45;
      string s1=string.Format("the value is {0,7:d}",i);
      string s2=string.Format("the value is {0,7:f3}",j);
      this.textBox1.Text=s1 ;
             //结果 the value is     123
      this.textBox2.Text=s2;
             //结果 the value is 123.450
    (3) double i=12345.6789
          this.textBox1.Text=i.ToString("f2");//结果 12345.68
    (4)double i=12345.6789;
       this.textBox1.Text=i.ToString("n");   //结果 12,345.68
       this.textBox2.Text=i.ToString(“n4”);  //结果 12,345.6789
    (5)double i=0.126;
       string s=string.Format("the value is {0:p}",i);
       this.textBox1.Text=i.ToString("p");   //结果 12.6%
       this.textBox2.Text=s;   //结果 the value is 12.6%


              数组
           特点:所有的元素类型都相同。
          //一维数组
         
               string[]  arr={"c","c++"};
               string[]   mystrings=new string[3];
               int[] intArr1=new int[4]{0,1,2,3};
                int[] intArr2={5,6,7};
                 int nvar=5;
    //二维数组
    int[,] arr = {{0,1}, {2,3}, {4,5}};
    int[,] myArr = new int[5,3];
    //锯齿型数组
    string[][] stra=new string[3][];
    stra[0]=new string[2]{"a11","a12"};
    stra[1]=new string[3]{"b11","b12","b13"};
    stra[2]=new string[5]{"a","e","i","o","u"};


    类型之间的转换
     位数少的转换为位数多的,可以使用隐式转换;
      位数多的转换为位数少的,要使用显式转换。

    装箱和拆箱
        int i=123;  //数值类型
        object box=i;  //装箱操作   在堆上建一个临时对象,把值付给临时对象,从而拥有对象的方法等
        int j=(int)box;  //拆箱操作   在栈上申请字节位,把对象的值赋给这个地址

  • 相关阅读:
    Python获取微软Microsoft Exchange邮件信息
    Python pandas库 -> 和SQL查询的一些等价操作
    Python ORM之peewee模块
    Python pandas库 ->groupby分组操作
    Python pandas库和MS SQL的等价操作->并集,交集,差集
    深入理解SQL关联查询->不等值连接
    SQL技巧->多重分组排序的思路
    SQL技巧->分组排序 , 取最新数据的两种方法
    Python脚本->导出SQL查询结果到Excel文件
    Python中的加密
  • 原文地址:https://www.cnblogs.com/jincwfly/p/726059.html
Copyright © 2020-2023  润新知