C#基础——语法学习

C#的基本语法

在介绍基本语法之前我们先来大概讲一下创建好的这些文件都是做什么的

在这里插入图片描述

.sln文件:将项目和解决方案项结合到一起
.vs文件夹:用来存储当前解决方案中关于用户的设置和自定义项,比如断点,主题等。(一般都将其隐藏起来)
目录文件

在这里插入图片描述

项目目录:
bin文件夹:项目的开发文件,里面包含了Debug(调试)Release(发布)
obj文件夹:项目的配置项文件,里面包含了项目的页面配置信息
Properties:设置
.csproj:每个项目中都会包含一个MSBulid的项目文件,(c#中后缀是 .csproj Visual Basic 中后缀是 .vbproj数据库项目中后缀是 .dbproj)
App.config:当前项目配置项
Program.cs:入口文件(项目的入口)
以.cs后缀结尾的文件都是属于c#文件
// using 引入、导入 System系统模块
using System;
// System.Collections(集合).Generic(这是一个泛型类)支持对应的代码
// Linq:(Language intergrated query)语言集合查询,提示
// Text:文本程序集
// 组件工作队列

// namespace 命名空间,相当于在这一个空间内的代码都可以进行互相的"交流访问"
namespace _1_语法学习 {
  // internal 修饰符
  // class 类
  // Program 文件名称,类名
  // c#中的{} 用途主要是包裹一定量的代码,所以书写的时候需要注意。
  internal class Program {
    // static:静态修饰符
    // void:属于方法返回类型的修饰
    // Main:主函数,也叫做入口函数,程序只要启动必须要经过的函数
    static void Main(string[] args) {
      // 因为是控制台应用,所以可以使用Console对象的Write方法查看运行结果
      Console.WriteLine("上午项目架构讲解"); //输出一行
      Console.Write("进行到第二节课了"); //输出内容,不换行
      Console.Write("正在继续");
      //Console.ReadKey(); // 获取一个输入节点

      // 描述了一个byte类型的变量,名字叫age,并赋值32
      byte age = 32;
      Console.WriteLine(age);
      //Console.WriteLine("请输入你的姓名:");
      // 会捕获当前控制台上的输入,然后返回出来
      // string表示长串的char,所以叫做字符串,用来保存一段话
      //string name = Console.ReadLine();
      //Console.WriteLine(name);

      // 浮点数三者的对比
      // float 占了四个字节,后面必须要加F或者f
      float f1 = 10.115555555f;
      // 占8个字节,后面可以加D或d,也可以不加
      double d1 = 10.115555555776;
      // 不要求精度的时候使用float,一般精度使用double,高精度使用decimal
      decimal d2 = 10.11555555555555555555m;

      //字符内容
      char c1 = 'B';
      char c2 = '中';
      char c3 = '1';
      char c4 = ' ';
      //不管数据类型是什么,只能代表单字符

      // 字符串:特殊的引用类型,字符串赋值的时候是值类型的数据进行深拷贝
      // 而引用类型一般都是浅拷贝
      string str = "abc"; //表示输出一段内容

      // \n 代表的是转移字符 相当于换行
      string str2 = "n\nn";
      Console.WriteLine(str2);
      Console.ReadLine();

      // c# 也提供一些功能性的工具类。例如 DateTime日期
      DateTime now = DateTime.Now;
      Console.WriteLine("现在的时间为:" + now);
      //上述着一些变量描述的方式都属于常规变量的描述,特点是使用小驼峰的方式
      // int intNumber, 从第二个单词开始,首字母大写
      //如果是多个变量类型相同的时候,可以简写
      int a = 20, b = 30, c = 40;

      // 常量:一旦声明之后就不能再去修改了,名字要采用大驼峰的方式
      const double PI = 3.1415926;
      Console.WriteLine(PI);

      //指针类型:一般都会以new开头,先分配内存,再去赋值
      Object people = new Object();
    }
  }
}

常用快捷键

ctrl + k + d :快速对其代码
ctrl + k + c :注释代码
ctrl + k + u :取消注释代码
f1:查看帮助文档

C# 提供了三种注释方式

1.单行注释

// Console.WriteLine(我是单行注释);

2.多行注释

     	/*
       * 我是多行注释1
       * 我是多行注释2
       * 我是多行注释3
       * 我是多行注释4
       */

3.标注

#region 标注一般用于对一段代码进行解释说明
     Console.WriteLine("这里是标注");
     Console.WriteLine("region 开始标注");
     Console.WriteLine("endregion 结束标注");
#endregion

C#语法中内置了数据类型,分为了三类

1.值类型(Value Type)
2.引用类型(Refercences types)
3.指针类型(Pointer)
数据类型的出现是为了让程序在存储数据的时候能够正确判断数据的特点,进行精准操作,
C#属于强类型语言,对数据类型有严格的要求
System.ValueType 值类型的派生类(所有的值类型都是从这个上面产生的)内存是系统分配好的

值类型

类型描述范围默认值
bool布尔值True 或 FalseFalse
byte8 位无符号整数0 到 2550
char16 位 Unicode 字符U +0000 到 U +ffff‘\0’
decimal128 位精确的十进制值,具有 28~29 个有效位数(-7.9 x 1028 到 7.9 x 1028) 100 到 280.0M
double64 位双精度浮点型(+/-)5.0 x 10-324 到 (+/-)1.7 x 103080.0D
float32 位单精度浮点型-3.4 x 1038 到 + 3.4 x 10380.0F
int32 位有符号整数类型-2,147,483,648 到 2,147,483,6470
long64 位有符号整数类型-9,223,372,036,854,775,808 到 9,223,372,036,854,775,8070L
sbyte8 位有符号整数类型-128 到 1270
short16 位有符号整数类型-32,768 到 32,7670
uint32 位无符号整数类型0 到 4,294,967,2950
ulong64 位无符号整数类型0 到 18,446,744,073,709,551,6150
ushort16 位无符号整数类型0 到 65,5350

默认值

在声明变量时,必须要同时给定初始值,否则无法使用
可以使用 default 表示默认值
数字的默认值都是 0
布尔值的默认值是 false
字符和字符串都是空字符 ‘\0’ “”

string x = default;
Console.WriteLine(x);

// 数字的值也有最大最小值概念
int max = int.MaxValue;
int min = int.MinValue;
Console.WriteLine(max); //2147483647
Console.WriteLine(min); //-2147483648

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

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

相关文章

短信打开小程序

获取 URL Scheme | 微信开放文档 静态网站 H5 跳小程序 | 微信开放文档

阿里云SMC迁移RedHat/CentOS 5 内核升级

阿里云SMC迁移RedHat/CentOS 5 内核升级 1. 起因 服务器需要迁移上阿里云,有几台服务器用的是Redhat 5.x,在使用SMC进行迁移时出现以下报错. [2023-12-13 09:50:55] [Error] Check System Info Failed, codeS16_111, msgGet OS Info Failed: [error] grub is too old for C…

工作随记:long类型数据迁移问题小记

文章目录 概要整体解决方法方法一:用COPY的方法:方法二:PL/SQL(如上)方法三:直接就把LONG转换成CLOB类型方法四:exp/imp 技术过程 概要 工作随记:在做技术方案发现客户数据库的表存在与系统表空间&#xf…

OpenAI 承认 ChatGPT 最近确实变懒,承诺修复问题

文章目录 一. ChatGPT 指令遵循能力下降引发用户投诉1.1 用户抱怨回应速度慢、敷衍回答、拒绝回答和中断会话 二. OpenAI 官方确认 ChatGPT 存在问题,展开调查三. OpenAI 解释模型行为差异,回应用户质疑四. GPT-4 模型变更受人事动荡和延期影响 一. Chat…

基于Java SSM框架实现固定设备资产管理系统项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架实现固定设备资产管理系统演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认…

二、结合各种图形库实现各种demo(11-20)

demo地址https://bidding-m.gitee.io/maptalks-test-next/#/ 11、isects 12、right click menu 13、infoWindow 14、image marker 15、multi image marker 16、vector-marker-fill 17、line-gradient-arrow 18、rotated-marker-with-line 19、smoothness-line 20、polygon 欢迎…

orb-slam2学习总结

目录 视觉SLAM 1、地图初始化 2、ORB_SLAM地图初始化流程 3、ORB特征提取及匹配 1、对极几何 2、对极约束 (epipolar constraint) 3、基础矩阵F、本质矩阵E 5、单目尺度不确定性 6、单应矩阵(Homography Matrix) 6.1 什么是单应矩…

干不完的996,加不完的007,浅谈程序员的内卷化

目录 一. 什么是内卷化 二. 程序员的内卷化 2.1. 码农时代 2.2. 开源时代 2.3. 加班文化 三. 如何不被内卷化 3.1. Stay Hungry, Stay Foolish 3.2. 工程能力 3.2.1. 架构 3.2.2. 规范 3.2.3. 管理 3.2.4. 排错 3.3. 学会思考 四. 结尾 一. 什么是内卷化 最近开始…

【算法与数据结构】37、LeetCode解数独

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题也是一道困难题,难点在于如何构建数独棋盘,如何检查棋盘的合法性&#xff…

Halcon一维码识别

文章目录 参数连接halcon 自带案例1(设置校验位识别条码)Halcon 自带案例2(设置对比度识别条码)Halcon 自带案例3(存在曲面变形)Halcon 自带案例4(设置条码扫描线)Halcon 自带案例5&…

Linux---Ubuntu操作系统

1. Ubuntu操作系统的介绍 Ubuntu操作系统是属于Linux操作系统中的一种,它是免费、稳定又可以拥有绚丽界面的一个操作系统 2. Ubuntu图形界面的介绍 任务栏 窗口操作按钮 窗口菜单条 任务栏效果图: 窗口操作按钮效果图: 窗口菜单条效果图: 3. 与Windows目录结…

『C++成长记』拷贝构造函数

🔥博客主页:小王又困了 📚系列专栏:C 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、拷贝构造函数 📒1.1拷贝构造函数的概念 📒1.2拷贝构造…

Java项目-瑞吉外卖Day6

导入用户地址功能,为用户添加地址: 添加AddressBook实体类,创建相关service,mapper,serviceImpl,controller类。 controller类直接使用的资料提供的代码。 实现菜品展示移动端开发: 看到前端发…

添加,更换和删除 vSphere License

目录 1. 删除 License2. 添加 License(1)输入许可证密钥(2)编辑许可证名称(3)确认许可证信息 3. 分配/更换 License(1)为 vCenter Server 分配 License(2)为 …

Android : 序列化 Parcelable 简单应用

1.Parcelable 介绍 Parcelable 是 Android 提供的一个序列化接口,用于将数据写入 Parcel,以及从 Parcel 中读取数据。一个类只要实现了这个接口,该类的对象就可以被序列化,主要用于 IPC(进程间通信)、Bind…

产品经理之如何编写竞品分析(医疗HIS系统管理详细案例模板)

目录 一.项目周期 二.竞品分析的目的 三.竞品分析包含的维度 四.如何选择竞品 五.竞品画布 六.案例模板 一.项目周期 在整个项目的周期,产品经理所做的事情主要在项目前期做市场分析、需求调研等,下面一张图概况了整个项目周期产品经理、开发工程师…

网络安全——Iptables防DDoS攻击实验

一、实验目的要求: 二、实验设备与环境: 三、实验原理: 四、实验步骤: 五、实验现象、结果记录及整理: 六、分析讨论与思考题解答: 一、实验目的要求: 1、掌握常见DDoS攻击SYN Flood的攻击…

gdb本地调试版本移植至ARM-Linux系统

移植ncurses库 本文使用的ncurses版本为ncurses-5.9.tar.gz 下载地址:https://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz 1. 将ncurses压缩包拷贝至Linux主机或使用wget命令下载并解压 tar-zxvf ncurses-5.9.tar.gz 2. 解压后进入到ncurses-5.9目录…

解决员工安全隐患的终极方案!迅软DSE答疑员工终端安全管控策略揭秘!

企业终端安全管控对于企事业单位来说至关重要。迅软DSE终端安全系统提供了丰富的终端安全桌面管理策略,可以对终端用户的上网行为和终端操作行为进行管理和控制,从而实现桌面终端的标准化管理,解决终端安全管理问题,并提高员工工作…

阿里云SLB的使用总结

一、什么是SLB 实现k8s的服务service的一种推荐方式,也是服务上云后,替代LVS的一个必选产品。 那么它有什么作用呢? 1、负载均衡,是它与生俱来的。可以配置多个服务器组:包括虚拟服务器组、默认服务器组、主备服务器…