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"); //@带的字符串会取消字符串中的转义
            
        }
    }
}

变量

/*
 变量声明是指程序运行前,编译器告诉程序变量的名称、类型、长度等
变量初始化提高了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);
        }
    }
}

变量类型

值类型

/*
值类型:可以直接存储数据
引用类型:存储的是数据的引用,这里跟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);
            }
        }
    }
}

引用类型

/*
引用类型:不直接存储变量的值,而是存储数据的地址
必须使用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等)、结构和枚举。
引用类型包括接口、数组、类等

值类型会以栈的方式分配一块相适应的存储区域,对变量的读取直接就在该内存区域直接进行

引用类型不存储数据,而是存储数据的引用。引用类型分两步创建,首先在栈上创建引用变量,然后在堆上创建对象本身,然后再把堆上的首地址赋给引用变量

 */

枚举类型

/*
 枚举类型: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
            }
        }
    }
}

数据类型

在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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一壶浊酒..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值