c#数据类型

原创 2006年05月22日 22:38:00

类型可分为:值类型,引用类型
     值类型:直接存放真正的数据,值类型都有固定的长度,值类型的变量都保存在
堆栈(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;  //拆箱操作

[C#]C++与C#数据类型总结

C++与C#数据类型总结 作用 C++类型 位数[Bytes] C#类型 别名 取值范围 后缀 字符 char 1 sbyte System.SByte ...
  • humanking7
  • humanking7
  • 2016年03月25日 17:26
  • 1004

C# 数据类型分类

分为值类型和引用类型。 值类型:继承自System.ValueType类,都会在栈上面分配,高效,包含枚举和结构;值类型支持MaxValue和MinValue字段,这两个字段说明了给定的类型可以存储...
  • shabihundan
  • shabihundan
  • 2016年03月01日 23:02
  • 132

SQL 数据类型 对应 c#数据类型

reference: https://msdn.microsoft.com/en-us/library/cc716729(v=vs.110).aspx 常见的: sql          ...
  • u010032207
  • u010032207
  • 2017年02月13日 18:40
  • 621

C#学习笔记 基本数据类型

C#学习笔记 基本数据类型
  • u011054333
  • u011054333
  • 2015年11月02日 21:26
  • 1310

C# 自定义数据类型

由于需要一个大于64位的数据类型(ulong),因此需要自己写一个数据类型存储大约600位的数据,并能够按位与  按位或 主要用到的技术: 1.操作符重载operator & ,opera...
  • ISaiSai
  • ISaiSai
  • 2013年01月23日 17:06
  • 3240

sqlServer以及Access数据类型与c#数据类型对应表

SQL SERVER、Access、C#数据类型详解及对应表 SQL SERVER数据类型 Access数据类型 C#数据类型 字段数据类型           ...
  • wsliuhaoyang
  • wsliuhaoyang
  • 2013年04月22日 20:18
  • 685

C#数据类型和三大结构

学习目的:不做前端,只写服务器端接口和操作数据库。 学编程不是看书,不是听老师讲,而是自己动手敲代码! 程序中每行代码都是有用的,要知道每行代码的作用。 程序中不允许出现大量重复的代码,否则为代码冗...
  • chenrushui
  • chenrushui
  • 2016年10月12日 16:12
  • 1320

【C#】 数据类型的取值范围和精度

C#又是我们接触的一门新的编程语言,从头开始学,(不能在像VB上吃亏了,VB是我的第一个墙门砖)目前感觉C#趣味多多 五大数据类型 数据类型 变量名称 赋值 I...
  • j15533415886
  • j15533415886
  • 2016年11月28日 21:26
  • 719

C++与C#数据类型对应关系总结

API与C#的数据类型对应关系表 API数据类型 类型描述 C#类型 API数据类型 类型描述 C#类型 WORD 16位无符号整数...
  • u010159842
  • u010159842
  • 2016年06月20日 14:27
  • 2219

Sql Server 数据类型与 C# 数据类型对照

Sql Server 数据类型与 C# 数据类型对照已验证类型(Sql Server 2012 & Visual Studio 2013) Sql Server C# 简写 bigint...
  • rickykay
  • rickykay
  • 2016年05月06日 15:12
  • 1471
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#数据类型
举报原因:
原因补充:

(最多只允许输入30个字)