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会自动转换类型为字符串


        }
    }

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/125616.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Semantic-Guided Zero-Shot Learning for Low-Light ImageVideo Enhancement

论文阅读之无监督低光照图像增强 Semantic-Guided Zero-Shot Learning for Low-Light Image/Video Enhancement 代码&#xff1a; https://github.com/ShenZheng2000/SemantiGuided-Low-Light-Image-Enhancement 在低光条件下增加亮度的一个可行方法是使用更高的ISO或更长时间…

qt-C++笔记之Qt中的时间与定时器

qt-C笔记之Qt中的时间与定时器 code review! 文章目录 qt-C笔记之Qt中的时间与定时器一.Qt中的日期时间数据1.1.QTime&#xff1a;获取当前时间1.2.QDate&#xff1a;获取当前日期1.3.QDateTime&#xff1a;获取当前日期和时间1.4.QTime类详解1.5.QDate类详解1.6..QDateTime类…

IP可视对讲实时录制系统

介绍 软件架构 技术支持 CallRecored介绍 IP可视对讲实时录制系统设计了数据库表&#xff0c;并完成了数据库建模&#xff0c;采用了视频编解码技术&#xff0c;高效网络传输&#xff0c;磁盘高效读写技术&#xff0c;以及提供开放接口。 系统客户端采用扁平化UI&#xff0c;…

如何设计vue项目的权限管理?

权限管理的重要性及必要性 数据安全&#xff1a;权限管理可以确保只有具有相应权限的用户能够访问和操作特定的数据。这可以保护敏感数据不被未授权的用户访问&#xff0c;从而提高数据的安全性。功能控制&#xff1a;权限管理可以根据用户的角色和权限设置&#xff0c;控制用户…

【java:牛客每日三十题总结-3】

java:牛客每日三十题总结 总结如下 总结如下 集合相关知识点 Collection主要的子接口: List:可以存放重复内容 Set:不能存放重复内容,所有重复的内容靠hashCode()和equals()两个方法区分 Queue:队列接口 SortedSet:可以对集合中的数据进行排序 Map没有继承Collection接口&…

vue项目js原生属性IntersectionObserver实现图片懒加载

vue项目js原生属性IntersectionObserver实现图片懒加载 IntersectionObserver 使用js原生属性IntersectionObserver实现观察img元素是否处于游览器视口中 懒加载原理&#xff1a;给img设置一个默认url图片&#xff0c;观察图片处于视口内以后&#xff0c;动态改变img的url为自己…

在Three.js中动画 简单案例

在Three.js中&#xff0c;动画是指在场景中创建和控制对象的运动和变化。模型是指通过Three.js加载的3D对象&#xff0c;可以是几何体、网格或复杂的模型文件&#xff08;如.obj或.gltf&#xff09;。动画可以存在于模型中&#xff0c;也可以单独定义。 编辑关键帧&#xff1a;…

数据结构与算法C语言版学习笔记(5)-串,匹配算法、KMP算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、串的定义二、串的存储结构1.顺序结构2.链式结构 三、串的朴素的模式匹配算法&#xff08;暴力匹配算法&#xff09;1.背景2.假设我们要从下面的主串 S"…

app自动化测试(Android)--显式等待机制

WebDriverWait类解析 WebDriverWait 用法代码 Python 版本 WebDriverWait(driver,timeout,poll_frequency0.5,ignored_exceptionsNone)参数解析&#xff1a; driver&#xff1a;WebDriver 实例对象 timeout: 最长等待时间&#xff0c;单位秒 poll_frequency: 检测的间隔步…

华为L410上制作内网镜像模板02

原文链接&#xff1a;华为L410上制作离线安装软件模板02 hello&#xff0c;大家好啊&#xff0c;今天给大家带来第二篇在内网搭建Apache服务器&#xff0c;用于安装完内网操作系统后&#xff0c;在第一次开机时候&#xff0c;为系统安装软件的文章&#xff0c;今天给大家介绍在…

nodejs+vue+python+PHP+微信小程序南七街道志愿者服务平台的设计与实现-计算机毕业设计推荐

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

PCIe寄存器之二

关键字索引&#xff1a; CAP_PM 对应&#xff1a;Capabilities: [c0] Power Management CAP_MSI 对应&#xff1a;Capabilities: [c8] MSI CAP_MSIX对应&#xff1a;Capabilities: [e0] MSI-X CAP_EXP 对应&#xff1a;Capabilities: [70] Express (v2) Endpoint 以上 [] 内的…

【云栖2023】张治国:MaxCompute架构升级及开放性解读

简介&#xff1a; 本文根据2023云栖大会演讲实录整理而成&#xff0c;演讲信息如下 演讲人&#xff1a;张治国|阿里云智能计算平台研究员、阿里云MaxCompute负责人 演讲主题&#xff1a;MaxCompute架构升级及开放性解读 活动&#xff1a;2023云栖大会 MaxCompute发展经历了…

网络基础(1)

目录&#xff1a; 1.了解局域网&#xff08;LAN&#xff09;和广域网&#xff08;WAN&#xff09; 2.认识“协议” 3.浅谈OSI七层模型 4.网络传输的基本流程 5.路由器这个设备 ---------------------------------------------------------------------------------------…

手写一个Webpack,带你了解构建流程

如果对前端八股文感兴趣&#xff0c;可以留意公重号&#xff1a;码农补给站&#xff0c;总有你要的干货。 前言 Webpack是一个强大的打包工具&#xff0c;拥有灵活、丰富的插件机制&#xff0c;网上关于如何使用Webpack及Webpack原理分析的技术文档层出不穷。最近自己也是发现…

回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测

回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测 目录 回归预测 | Matlab实现PCA-PLS主成分降维结合偏最小二乘回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现PCA-PLS主成分降维结合偏小二乘回归预测&#xff08;完整源码和数据) 1.输…

【19】c++11新特性 —>线程异步

什么是异步&#xff1f; async的两种方式 //方式1 async( Function&& f, Args&&... args ); //方式2 async( std::launch policy, Function&& f, Args&&... args );函数参数&#xff1a; f:任务函数 Args:传递给f的参数 policy:可调用对象f的…

微信的通讯录联系人,有没有什么办法导出来做备份

6-10 这是可以做到的&#xff0c;并且很简单&#xff0c;对于需要把微信通讯录备份出来&#xff0c;或者离职交接的人来说&#xff0c;本文非常适合阅读&#xff0c;只是一个简单的方法&#xff0c;即可快速地把微信的通讯录搞出来&#xff0c;本质其实就是使用正确的工具就行…

C++指针访问数组 函数中用指针传参

用指针访问数组 在函数中用指针传参

2023 年最新腾讯官方 QQ 机器人(QQ 群机器人 / QQ 频道机器人)超详细开发教程

注册 QQ 开放平台账号 QQ 开放平台是腾讯应用综合开放类平台&#xff0c;包含 QQ 机器人、QQ 小程序、QQ 小游戏 等集成化管理&#xff0c;也就是说你注册了QQ 开放平台&#xff0c;你开发 QQ 机器人还是 QQ 小程序都是在这个平台进行部署上线和管理。 如何注册 QQ 开放平台账…