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,并赋值32byte age = 32;Console.WriteLine(age);//Console.WriteLine("请输入你的姓名:");// 会捕获当前控制台上的输入,然后返回出来// string表示长串的char,所以叫做字符串,用来保存一段话//string name = Console.ReadLine();//Console.WriteLine(name);// 浮点数三者的对比// float 占了四个字节,后面必须要加F或者ffloat f1 = 10.115555555f;// 占8个字节,后面可以加D或d,也可以不加double d1 = 10.115555555776;// 不要求精度的时候使用float,一般精度使用double,高精度使用decimaldecimal 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 或 False | False |
| byte | 8 位无符号整数 | 0 到 255 | 0 |
| char | 16 位 Unicode 字符 | U +0000 到 U +ffff | ‘\0’ |
| decimal | 128 位精确的十进制值,具有 28~29 个有效位数 | (-7.9 x 1028 到 7.9 x 1028) 100 到 28 | 0.0M |
| double | 64 位双精度浮点型 | (+/-)5.0 x 10-324 到 (+/-)1.7 x 10308 | 0.0D |
| float | 32 位单精度浮点型 | -3.4 x 1038 到 + 3.4 x 1038 | 0.0F |
| int | 32 位有符号整数类型 | -2,147,483,648 到 2,147,483,647 | 0 |
| long | 64 位有符号整数类型 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 | 0L |
| sbyte | 8 位有符号整数类型 | -128 到 127 | 0 |
| short | 16 位有符号整数类型 | -32,768 到 32,767 | 0 |
| uint | 32 位无符号整数类型 | 0 到 4,294,967,295 | 0 |
| ulong | 64 位无符号整数类型 | 0 到 18,446,744,073,709,551,615 | 0 |
| ushort | 16 位无符号整数类型 | 0 到 65,535 | 0 |
默认值
在声明变量时,必须要同时给定初始值,否则无法使用
可以使用 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
相关文章:
C#基础——语法学习
C#的基本语法 在介绍基本语法之前我们先来大概讲一下创建好的这些文件都是做什么的 .sln文件:将项目和解决方案项结合到一起 .vs文件夹:用来存储当前解决方案中关于用户的设置和自定义项,比如断点,主题等。(一般都将其…...
vue-实现高德地图-省级行政区地块显示+悬浮显示+标签显示
<template><div><div id"container" /><div click"showFn">显示</div><div click"removeFn">移除</div></div> </template><script> import AMapLoader from amap/amap-jsapi-load…...
flutter ‘Gradle Libs‘ was added by build file ‘app/build.gradle‘
相关问题解释文章 How to prefer settings.gradle repositories over build.gradle repositoriesMode 解释 问题描述 此问题是,直接创建的flutter项目,需要配置其他的maven仓库地址,和第三方module,结果始终都是无法成功 错误…...
Java中的链式编程风格与应用案例
引言 链式编程是一种在编程中经常使用的风格,它可以使代码更加简洁、易读和易于维护。在Java中,链式编程可以通过方法链的方式来实现。本文将介绍Java中的链式编程风格,并通过几个应用案例来说明其实际应用。 一、链式编程的概念与特点 链式…...
MTK Android P Sensor架构(一)
需求场景: 本来如果只是给传感器写个驱动并提供能读取温湿度数据的节点,是一件比较轻松的事情,但是最近上层应用的同事要求我们按照安卓标准的流程来,这样他们就能通过注册一个服务直接读取传感器事件数据了。这样做的好处就是第…...
低代码开发与传统软件开发:未来趋势与竞争格局
近年来,低代码开发平台的快速发展引起了各行各业的广泛关注。低代码开发平台简化了软件开发的复杂性,提供了更快速、更灵活的开发方式。于是,许多人开始产生一个疑问:未来低代码开发是否会取代传统软件开发?今天这篇文…...
leetcode 股票问题全序列
1 只允许一次交易,121题,买卖股票的最佳时机 class Solution {/*给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票…...
SpringBoot中日志的使用log4j2
SpringBoot中日志的使用log4j2 1、log4j2介绍 Apache Log4j2 是对 Log4j 的升级,它比其前身 Log4j 1.x 提供了重大改进,并提供了 Logback 中可用的许多改 进,同时修复了 Logback 架构中的一些问题,主要有: 异常处理…...
机械设备企业网站建设的效果如何
机械设备涵盖的类目比较广,其市场需求也是稳增不减,也因此无论大小企业都有增长的机会,当然这也需要靠谱的工具及正确的决策。 对机械设备企业来说,产品品质自然是首位,而向外打造品牌、扩展信息及拓客转化自然也是非…...
设计模式之结构型设计模式(二):工厂模式 抽象工厂模式 建造者模式
工厂模式 Factory 1、什么是工厂模式 工厂模式旨在提供一种统一的接口来创建对象,而将具体的对象实例化的过程延迟到子类或者具体实现中。有助于降低客户端代码与被创建对象之间的耦合度,提高代码的灵活性和可维护性。 定义了一个创建对象的接口&…...
算法模板之单链表图文讲解
🌈个人主页:聆风吟 🔥系列专栏:算法模板、数据结构 🔖少年有梦不应止于心动,更要付诸行动。 文章目录 📋前言一. ⛳️使用数组模拟单链表讲解1.1 🔔为什么我们要使用数组去模拟单链表…...
【强化学习-读书笔记】表格型问题的 Model-Free 方法
参考 Reinforcement Learning, Second Edition An Introduction By Richard S. Sutton and Andrew G. Barto无模型方法 在前面的文章中,我们介绍的是有模型方法(Model-Based)。在强化学习中,"Model"可以理解为算法…...
【手撕算法系列】k-means
k-means k-means算法介绍 k-means算法介绍 K-means算法是一种用于聚类的迭代算法,它将数据集划分为K个簇,其中每个数据点属于与其最近的簇的中心。这个算法的目标是最小化簇内的平方和误差(簇内数据点与簇中心的距离的平方和)。 …...
D33|动态规划!启程!
1.动态规划五部曲: 1)确定dp数组(dp table)以及下标的含义 2)确定递推公式 3)dp数组如何初始化 4)确定遍历顺序 5)举例推导dp数组 2.动态规划应该如何debug 找问题的最好方式就是把…...
C语言----文件操作(二)
在上一篇文章中我们简单介绍了在C语言中文件是什么以及文件的打开和关闭操作,在实际工作中,我们不仅仅是要打开和关闭文件,二是需要对文件进行增删改写。本文将详细介绍如果对文件进行安全读写。 一,以字符形式读写文件ÿ…...
oracle 10046事件跟踪
10046事件是一个很好的排查sql语句执行缓慢的内部事件,具体设置方式如下: 根据10046事件跟踪SQL语句 1、 alter session set events 10046 trace name context forever,level 12; 2、执行SQL语句 3、关闭10046事件 alter session set events 10046 trace…...
微软自带浏览器Edge,无法关闭“保存历史记录网站的屏幕截图”解决方案
微软自带浏览器Edge,无法关闭“保存历史记录网站的屏幕截图”解决方案 吐槽1:Windows自带的Chrome内核版本的浏览器Microsofg Edge刚发布时可谓一股清流,启动速度快,占用内存较小,相信很多人也开始抛弃正代Chrome&…...
讲座 | 颠覆传统摄像方式乃至计算机视觉的“脉冲视觉”
传统相机拍摄视频时其实是以一定帧率进行采样,视频其实还是一串图片的集合,因此低帧率时会觉得视频卡,拍摄高速运动物体时会有运动模糊等等问题。然而你能想象这一切都可以被“脉冲视觉”这一前沿技术改变吗? 今天下午听了北京大学…...
uniGUI学习之UniHTMLMemo1富文本编辑器
1]系统自带的富文本编辑器 2]jQueryBootstarp富文本编辑器插件summernote.js 1]系统自带的富文本编辑器 1、末尾增加<p> 2、增加字体 3、解决滚屏问题 4、输入长度限制问题 5、显示 并 编辑 HTML源代码(主要是图片处理) 1、末尾增加<p> UniHTMLMemo1.Lines…...
详细教程 - 从零开发 鸿蒙harmonyOS应用 第四节 (鸿蒙Stage模型 登录页面 ArkTS版 推荐使用)
在鸿蒙OS中,Ability是应用程序提供的抽象功能,可以理解为一种功能。在应用程序中,一个页面即一种能力,如登录页面,即具有登录功能的能力。以下是对鸿蒙新建项目的登录代码功能的详细解读和工作流程的描述: …...
IGP(Interior Gateway Protocol,内部网关协议)
IGP(Interior Gateway Protocol,内部网关协议) 是一种用于在一个自治系统(AS)内部传递路由信息的路由协议,主要用于在一个组织或机构的内部网络中决定数据包的最佳路径。与用于自治系统之间通信的 EGP&…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
关于uniapp展示PDF的解决方案
在 UniApp 的 H5 环境中使用 pdf-vue3 组件可以实现完整的 PDF 预览功能。以下是详细实现步骤和注意事项: 一、安装依赖 安装 pdf-vue3 和 PDF.js 核心库: npm install pdf-vue3 pdfjs-dist二、基本使用示例 <template><view class"con…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
【LeetCode】算法详解#6 ---除自身以外数组的乘积
1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...
