码迷,mamicode.com
首页 > Windows程序 > 详细

c# 数据类型

时间:2015-02-06 20:24:16      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

 

整数类型
           
类型 大小 范围(包括边界值) BCL名称 是否有符号 后缀
sbyte 8位 -128~127 System.SByte Yes  
byte 8位 0~255 System.Byte No  
short 16位 -32768~32767 System.Int16 Yes  
ushort 16位 0~65535 System.UInt16 No  
int 32位 -2147483648~2147483637 System.Int32 Yes  
uint 32位 0~4294967295 System.UInt32 No U或u
long 64位

-9223 3720 0368 755 808~

9223 3720 0368 755 807

System.Int64 Yes L或l
ulong 64位 0~18 466 744 073 709 551 615 System.UInt64 No UL或ul
 

 

 

浮点类型
类型 大小 范围(包括边界值) BCL名称 有效数字 后缀
float 32位   System.Single 7  F或f
double 64位   System.Double 15~16  
 

 

 

decimal类型
类型 大小 范围(包括边界值) BCL名称 有效数字 后缀
decimal 128位   System.Decimal 28~29  M或m
 

 

/*C#语法基础
 * 1.C#程序是从Main方法开始执行。要求Main方法的返回值类型为void或int ,而且要么不带参数,要么接受一个字符串数组作为参数。当返回值是int的是状态吗,标志程序是否执行成功,返回非
 * 0值通常意味着错误;
 * 2.类型:是具有相似特征和行为的个体的分类;
 * 3.一次赋值返回一个值,所以C#允许在同一条语句中连续进行多个赋值操作;
 * 4.基元类型:8中整数类型,2种二进制浮点类型,1种金融计算的额十进制浮点类型,1种布尔类型,1种字符类型,对于这13中基元类型都是struct类型;
 * 那也就是说这些都是值类型,也是是说都是派生自System.ValueType;
 * 5.对于8种整形来说存到局部变量(locals)里面都是int(8~64),uint(8~64)类型,在32位以前都是一int4(32位)加载,long和ulong转换成i8(64位)
 * 6.对于浮点类型来说:float,double分别是以r4和r8加载的,存储到局部变量中分别是float32和float62;
 * 7.对于deciaml 来说加载的时候是以i4加载的,在调用System.Decimal的构造进行实例化,存储到局部变量中是valueType [mscrolib]System.Decimal类型
 * 8.格式说明符:“{0:x/X}”表示以16进制,"{0:R/r}"表示字符串转换为数值
 * 9.bool类型的实际大小是一个字节
 * 10.char 类型是2个字节
 * 11.null只能赋给引用类型,可空值类型,指针
 * 12.?可空修饰符;可以将null赋给值类型;在数据库编程中尤其有用;
 * 13.大小不一致的multidimensional Array会造成编译错误;
 * 14.交错数组:就是由数组构成的数组。交错数组不用逗号标识新的维,交错数组定义由数组构成的数组。
 * 15.[]数组访问符
 * 16.为了避免overflow最好用数组.Length-1来避免月结错误;不要使用硬编码
 * User: YuanWei
 * Date: 2015/1/20
 * Time: 9:36
 * 
 */
using System;

namespace LearningBasis
{
    class Program
    {
        public static void Main(string[] args)
        {
            // TODO: Implement Functionality Here
//            int rt=System.Console.Read();//返回的是对应的ascii的十进制整数,
            /*8种整形:sbyte,byte,short,ushort,int,uint,long,ulong*/
//            sbyte sbNum=1;//8bits BCL:System.SByte
//            byte bNum=2;//BCL:System.Byte
//            short shNum=3;//16bits BCL:System.Int16
//            ushort ushNum=4;//BCL:System.UInt16
//            int iNum=5;//32bits BCL:System.Int32
//            uint uiNum=6U;//有后缀 BCL:System.UInt32
//            long lNum=7L;//有后缀//64bits BCL:System.Int64
//            ulong ulNum=8UL;//有后缀BCL:System.UInt64
//            /*3种浮点类型:float,double,decimal(特殊的浮点类型)*/
//            float fNum=23.6f;//BCL:System.Single
//            double douNum=24.8;//BCL:System.Double
//            decimal decNum=45.9m;//BCL:System.Decimal
//            /*bool,char*/
//            bool isReal=false;//BCL:System.Boolean
//            char word=‘a‘;//BCL:System.Char
//            /*string*/
//            string strExample1="nihao";
//            string strExample2="nihao";
//            string strNull=null;
//            if(strNull==null)
//            {
//                Console.WriteLine("strNull is Null");
//            }
//            Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12}",sbNum,bNum,shNum,ushNum,iNum,uiNum,lNum,ulNum,fNum,douNum,decNum,isReal,word);
//            Console.WriteLine(strExample1);
//            Console.WriteLine(strExample2);
//
//            //Display "Ox2A"
//            Console.WriteLine("0x{0:X}",42);
            //Fightable fight=(new Person("zhang")) as Fightable;//将Person类型转换为父接口Fightable
            //fight.Fight();
//            Person p=new Person();
//            p.person=new Person();
            //Person p=new Person("xiaonizi"){person=new Person("haoren")};
            //p.person.Fight();
//            unchecked//强制不做溢出检查,checked做溢出检查
//            {
//                int maxNum=int.MaxValue;//2147483647
//                maxNum+=1;
//                Console.WriteLine(maxNum);
//            }
            /*先声明后赋值*/
//            int [] arrayNum1;
//             arrayNum1=new int[3];//onw dismentional
//            arrayNum1={11,22,33};//错误
//             int[,] arrayNum2;
//            arrayNum2=new int[2,3];//two dismentional
//            int [,,] arrayNum3;
//             arrayNum3=new int[2,3,4]; //three dismentional
//            int [,] cells=int[3,3];
//            cells={{1,2,3},{1,2,0},{1,2,1}};//错误
//            arrayNum2={{1,2,3},{1,2,3}};//错误
            /*声明时赋值*/
//            int [] arrayNum11={1,2,3};
//            int [,] arrayNum22={{1,2},{1,2},{2,3}};
            int [,,] arrayNum33={{{11,23},{22,45}},{{33,67},{44,58}}};
//            int[] arrayNum44=new int[]{0,1,2};
//            int[] arrayNum55=new int[3]{1,2,3};//其实不同写多少个,但是一但写了之后,在后面的赋值就必须有固定个数,不能多也不能少
//            foreach(int num in arrayNum33)
//            {
//                Console.WriteLine(num);
//            }
//            string[] strArray=new string[3];
//            Console.WriteLine(strArray[0]);
//            int[] test=new int[3];
//            Console.WriteLine(test[1]);
            //Console.WriteLine(arrayNum33[1,1,1]);//访问数组里面的元素
            //Console.WriteLine("{0},{1},{2}",arrayNum1.Length,arrayNum2.Length,arrayNum3.Length);
            /*交错数组:解析:int[]是数据类型,所以他之后的[]声明了一个int[]类型的数组,注意,交错数组要求为内部的每个数组都创建数组实例*/
            int[][] cells={
                new int[]{1,0,2,0},
                new int[]{1,2,0},
                new int[]{1,2},
                new int[]{1}
            };
            cells[0][1]=3;//访问交错数组中的元素
            Array.Reverse(cells);
//            Array.Clear(cells,0,cells.Length-2);
//            foreach(int num in cells)//会报错:无法将类型“int[]”转换为“int”也就是说明上面的一个数组的类型是int[],
//            {
//                Console.WriteLine(num);
//            }
//            foreach(int[] num in cells)//num遍历到的是每一个int数组,换句话说,就是cells里面的元素是数组
//            {
//                foreach(int subNum in num)//subNum表示的是每一个数组里面的元素
//                {
//                    Console.Write(" "+subNum+" ");
//                }
//                Console.WriteLine();
//            }
            Console.ReadKey(true);
        }
    }
    interface Fightable
    {
        void Fight();
    }
    class Person:Fightable
    {
        public Person(string name )
        {
            this.Name=name;
        }
        public Person person{get;set;}
        public string Name{get;set;}
        public void Fight()
        {
            System.Console.WriteLine("I can fight");
        }
    }
}

 

c# 数据类型

标签:

原文地址:http://www.cnblogs.com/vivieryuan/p/4237671.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!