• c#数据类型


    常量

    /*
     常量是固定的量,在运行过程中不可以改变的量
    const 来修饰不能改变的量
     */
    // public private protected internal 是访问修饰符
    
    using System.Security.Cryptography.X509Certificates;
    
    namespace ConsoleApp1
    {
        internal class Program
        {
            public const int a = 15; //定义一个整型常量
            public const char b= 'A'; //定义一个字符常量
            public const string c = "hello world"; //定义一个字符串常量
            static void Main(string[] args)
            {
                
                Console.WriteLine("Hello world  \a");//\a表示响铃
                Console.WriteLine(a);
                Console.WriteLine(b);
                Console.WriteLine(c);
                Console.WriteLine(@"你好啊\a"); //@带的字符串会取消字符串中的转义
                
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    变量

    /*
     变量声明是指程序运行前,编译器告诉程序变量的名称、类型、长度等
    变量初始化提高了c#安全性,调用未初始化的变量会当成错误
     */
    
    namespace ConsoleApp2
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                int a = 10;
                int b = 20;
                int c = a + b;  //定义三个变量
                Console.WriteLine("a:{0},b:{1},c:{2}",a,b,c);
                int num=Convert.ToInt32(Console.ReadLine());//从键盘读取的数字是字符串类型的,使用强制类型转换
                Console.WriteLine("num:{0}",num);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20

    变量类型

    值类型

    /*
    值类型:可以直接存储数据
    引用类型:存储的是数据的引用,这里跟c语言中的指针类型不一样,因为指针类型和引用类型存储的区域不一样,引用类型存储在堆上
     
    
    值类型:派生system.ValueType,值类型不能包含Null
     
     */
    
    namespace ConsoleApp3
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                double a = 3.1415926;
                Console.WriteLine(a);
                float b = Convert.ToInt16(a); //double强制转换为float类型
                Console.WriteLine(b);
                bool c=false;
                Console.WriteLine(c);
                int d=Convert.ToInt32(c);//将bool类型直接转换为int类型
                Console.WriteLine(d);
                Console.WriteLine("请输入一个数字,我会判断是偶数还是奇数");
                int e =Convert.ToInt32(Console.ReadLine()); //注意这里使用ReadLine,Read输入的是一个acsii值
                if (e%2==0)
                    {
                    Console.WriteLine("{0}是一个偶数", e);
                }
                else
                {
                    Console.WriteLine("{0}是一个奇数", e);
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    引用类型

    /*
    引用类型:不直接存储变量的值,而是存储数据的地址
    必须使用new 来创建引用类型的变量
    引用类型是由垃圾回收机制来管理的
    引用类型在未被赋值前都是null
    多个引用类型都可以引用同一对象,对一个变量执行的操作会影响另一个变量
     */
    
    namespace ConsoleApp4
    {
        internal class Program
        {
            class A 
            {
                public int num = 0; //声明一个共有类型的变量
            }
            static void Main(string[] args)
            {
    
                int a = 0;  
                int b = a;
                b = 100;
                Console.WriteLine("a={0},b={1}",a,b); //a,b都是值类型,b改变并没有改变a的值
                
    
                A n1=new A(); //使用new创建一个引用对象
                A n2=n1; //n2都指向同一个对象
                n2.num = 100;
                Console.WriteLine("n1.num={0},n2.num={1}", n1.num, n2.num);
    
    
    
            }
    
    
        }
    
    }
    
    /*
     C#里面把数据类型分为两大类,分别为值类型和引用类型。
    值类型包括基本数据类型(int、char、double等)、结构和枚举。
    引用类型包括接口、数组、类等
    
    值类型会以栈的方式分配一块相适应的存储区域,对变量的读取直接就在该内存区域直接进行
    
    引用类型不存储数据,而是存储数据的引用。引用类型分两步创建,首先在栈上创建引用变量,然后在堆上创建对象本身,然后再把堆上的首地址赋给引用变量
    
     */
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49

    枚举类型

    /*
     枚举类型:enum关键字声明
     */
    
    namespace ConsoleApp1
    {
        enum days { sun,mon,tue,wed,thu,fri,sat}
    
        internal class Program
        {
            static void Main(string[] args)
            {
                int start =(int)days.sun;
                Console.WriteLine("mon{0}",start);
    
                for(int i=0;i<5;i++) 
                {
                    Console.WriteLine("hello world");//打印五次hello world
                }
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    数据类型

    在C#中有两种基本类型,分别是值类型和引用类型。而值类型还可以细分为内置值类型、结构和枚举;引用类型可以细分为类类型、接口以及委托

    namespace ConsoleApp2
    {
        internal class Program
        {
            static void Main(string[] args)
            {
                //sizeof(type)可以产生以字节为单位的存储对象或类型的存储空间大小
    
                Console.WriteLine("size of byte :{0}", sizeof(byte));
                Console.WriteLine("size of int: {0}", sizeof(int));
    
    
                //引用类型是system.object,所有类型都是继承system.object.所以任何类型的值都可以赋值给object类型的变量
                object age;
                age = 10;  //装箱操作,10是值类型,在栈上,age是object,在堆上
                           //Console.WriteLine("age:{}", age);        //这里不能直接输出object
    
                int age1 = (int)age;//拆箱
                string dt = DateTime.Now.ToString();
                Console.WriteLine("当前时间:{0}",dt);
                Console.WriteLine("当前时间{0}", DateTime.Now.ToString("d"));
    
                Console.WriteLine("全局唯一标识符:{0}",Guid.NewGuid().ToString());
    
                //打印类型
                string a = typeof(string).ToString();
                Console.WriteLine("{0}", a);
                Console.WriteLine("{0}", typeof(char)); //Console.write会自动转换类型为字符串
    
    
            }
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
  • 相关阅读:
    设信号x(t)=cos(2π×50t)+2×cos(2π×400t),试将它的两个频率分量分离,并绘制它们的时域波形及频谱图
    深入解析kubernetes controller-runtime
    excel怎么设置密码?加密文件这么做!
    WSL增加独立的虚拟磁盘VHDX
    笔记(二)图的基本表示【斯坦福CS224W图机器学习】
    海量数据处理
    MySQL-MHA
    如何控制Spring bean的生命周期
    c#——switch case语句
    聚磷酸酯-紫杉醇前药(PTX-PEEP)|聚姜黄素-二硫键-聚甲基丙烯酸二乙胺基乙酯-聚磺酸甜菜碱|齐岳生物
  • 原文地址:https://blog.csdn.net/qq_40107571/article/details/134320898