C#8.0本质论第一章--C#概述
C#8.0本质论第一章–C#概述
朋友推荐的一本讲C#的书–C#本质论,英文叫Essential C#,官网可以免费看英文版的https://essentialcsharp.com/home。
C#可以为各种不同的系统平台开发应用软件和程序组件,支持移动设备,游戏主机,Web应用等等。
1.1Hello World
可以用VSCode编写,用dotnet命令编译。也可以在VS中编写。
.NET Core的所有程序集都使用.dll扩展名。
1.2C#语法基础
介绍了C#关键字,以及标识符的规则,包括帕斯卡大小写(PascalCase)和camel大小写(camelCase),也就是大驼峰和小驼峰,类名函数名用大驼峰,局部变量名用小驼峰。
关键字附加@前缀可作为标识符使用。
C#要求Main方法返回void或int,要么无参,要么接收一个字符串数组,Main返回的是状态码,标识程序执行是否成功,返回非0通常意味着错误。
C#允许一条语句跨越多行。
1.3使用变量
char是字符类型,与其他语言不同的是,长度为16位,足以表示无代理项的Unicode字符。
局部变量声明后必须在读取前赋值。赋值作为一种操作会返回一个值,所以C#允许在同一语句中进行多个赋值操作。
所有string类型的数据都是不可变的。
1.4控制台输入和输出
System.Console.Read()方法返回与读取的字符值对应的整数,没有更多字符可用就返回-1,为获取实际字符,需将整数转型为字符。
C#2.0新增了ReadKey()方法,它返回的是用户的单词按键输入。
C#6.0之前使用复合格式化的方式来定义输出格式,C#6.0之后开始引入字符串插值功能。
//复合格式化
System.Console.WriteLine("your name is {0} {1}",firstname,lastname);
//字符串插值
System.Console.WriteLine($"your name is {firstname} {lastname}");
占位符能按任意顺序出现,还能多次使用,另外也可以省略占位符。
1.5托管执行和CLI
程序集使用公共中间语言(Common Intermediate Language,CIL)。C#编译器将C#源代码文件转换成中间语言,然后VES(Virtual Execution System,虚拟执行系统,也称为运行时(runtime))根据需要编译CIL代码,转换成处理器能理解的机器码,这个过程称为即时编译或JIT编译(just-in-time compilation)。如代码在像“运行时”这样一个“代理”的上下文中执行,就称为托管代码(managed code)。执行时不需要"运行时"的代码称为本机代码(native code)或者非托管代码(unmanaged code)。
可以用ILDASM对程序集反汇编,提取C#编译器生成的CIL。可以用一些混淆器减少别人获取源代码的可能性。有很多工具可以将CIL反编译成C#。
1.6多个.NET框架
书中提到,.NET Core才算.NET的未来。然而我在自己vs2022里只有.NET Framework。
相关文章:
C#8.0本质论第一章--C#概述
C#8.0本质论第一章–C#概述 朋友推荐的一本讲C#的书–C#本质论,英文叫Essential C#,官网可以免费看英文版的https://essentialcsharp.com/home。 C#可以为各种不同的系统平台开发应用软件和程序组件,支持移动设备,游戏主机&…...
geoserver编辑样式 【开发工具QGis的初次使用】
geoserver编辑样式 开发工具配置中文语言 geoserver样式的更改 开发工具 链接: geoserver样式style的更改 链接: QGis开发工具的安装及使用 配置中文语言 setting > options > general > 中文 geoserver样式的更改 链接: geoserver样式style的更改 利用QGIs Q…...
【网络基础知识铺垫】
文章目录 1 :peach:计算机网络背景:peach:1.1 :apple:网络发展:apple: 2 :peach:协议:peach:2.1 :apple:协议分层:apple:2.2 :apple:OSI七层模型:apple:2.3 :apple:TCP/IP模型:apple:2.4 :apple:TCP/IP模型与操作系统的关系:apple: 3 :peach:网络传输基本流程:peach:4 :peach:网…...
一个利用oracle异常处理的函数
函数主体如下: CREATE OR REPLACE FUNCTION fn_get_agmt_bal(p_agmt_no varchar2) RETURN NUMBER ISv_bal NUMBER : 0;--在SQL/PLUS中执行时,若合dbms_output生效,需先执行【SET SERVEROUTPUT ON】; BEGINselect agmt_balinto v_balfrom edw…...
langchain-ChatGLM源码阅读:参数设置
文章目录 上下文关联对话轮数向量匹配 top k控制生成质量的参数参数设置心得 上下文关联 上下文关联相关参数: 知识相关度阈值score_threshold内容条数k是否启用上下文关联chunk_conent上下文最大长度chunk_size 其主要作用是在所在文档中扩展与当前query相似度较高…...
什么是Java中的工厂模式?
工厂模式(Factory Pattern)是一种常见的设计模式,它可以帮助我们简化对象创建的过程,将对象的创建与使用分离,提高代码的可维护性和可扩展性。在Java中,工厂模式通常分为简单工厂模式(Simple Fa…...
数据库--MySQL
一、什么是范式? 范式是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式。 最常用的三大范式 第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列) 第二范式(2NF):满足…...
浏览器多管闲事之跨域
年少时的梦想就是买一台小霸王游戏机 当时的宣传语就是小霸王其乐无穷~。 大些了,攒够了零花钱,在家长的带领下终于买到了 那一刻我感觉就是最幸福的人 风都是甜的! 哪成想... 刚到家就被家长扣下了 “”禁止未成年人玩游戏机 (问过卖家了&a…...
那为什么 async 函数最终返回的是一个新的 Promise?
async 函数的设计就是这样的:无论你返回什么值,它都会自动被包装为一个 Promise 对象。这就是为什么说 async 函数最终返回的是一个新的 Promise 对象。 当你在 async 函数中使用 return 语句返回一个值时,这个值会成为最终返回的 Promise 对…...
Java的泛型
泛型 泛型又称参数化类型,是Jdk5.0出现的新特性,解决数据类型的安全性问题 在类声明或实例化时只要指定好需要的具体的类型即可 Java泛型可以保证如果程序在编译时没有发出警告,运行时就不会产生ClassCastException异常。同时,代码更加简洁…...
pve和openwrt以及我的电脑中网络的关系和互通组网
情况1 一台主机 有4个口,分别eth0,eth1,eth2,eth3 pve有管理口 这个情况下 ,没有openwrt 直接电脑和pve管理口连在一起就能进pve管理界面 情况2 假设pve 的管理口味eth0 openwrt中桥接的是eth0 eth1 eth2 那么电脑连接eth3或者pve管理口设置eth3…...
TypeScript学习笔记
1.ts和js的区别 2. ts的优势 3. ts下载后报错解决方法 报错: PS C:\Users\\Desktop> tsc -v tsc : 无法加载文件 C:\Users\32173\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/ go.microsoft.com/fwlink/?…...
MATLAB实现两组数据的延时对齐效果
博主在某次实验中,相同的实验条件下分别采集了两组数据,发现两组数据存在一个延时,如下图所示: 本文记录消除这个延时,实现相同数据状态的对齐效果,采用MATLAB自带的xcorr函数实现,具体步骤如下…...
基于Spring Boot的网络在线学习网站的设计与实现(Java+spring boot+MySQL)
获取源码或者论文请私信博主 演示视频: 基于Spring Boot的网络在线学习网站的设计与实现(Javaspring bootMySQL) 使用技术: 前端:html css javascript jQuery ajax thymeleaf 微信小程序 后端:Java spri…...
Is a directory: ‘outs//.ipynb_checkpoints‘
提示out/文件夹的.ipynp_chechpoints是一个文件夹,但是打开文件夹却没有看到,可以得知他是一个隐藏文件夹,进入outs/文件夹,使用 ls -a可以看到所有文件 果然出现这个文件夹,但是我们这个outs/文件夹存放的是图片&am…...
PintOS lab2 User Programs 实验记录
Background 大体流程如下图所示,显然这时候start_process无法被调度到。 然后start_process 里面load .out文件 (.o文件就是对象文件,是可重定向文件的一种,通常以ELF格式保存,里面包含了对各个函数的入口标记,描述,…...
『CV学习笔记』docker和nvidia-docker离线安装
docker和nvidia-docker离线安装 文章目录 1. docker的deb包下载链接2. nvidia-docker 的deb包下载3. 重启 docker4. 检验安装5. Docker容器命令行不支持Tab键命令自动补全6. 参考文献这里是ubuntu操作系统, 如果是其他的操作系统,则需要安装对应的deb包1. docker的deb包下载链…...
使用JavaScript实现页面滑动切换效果
使用JavaScript实现页面滑动切换效果 在现代Web页面设计中,页面滑动切换效果已经成为了一种常见的设计要求,能够提升用户体验,增加页面的交互性。本文将通过JavaScript来实现这一效果。 首先,我们需要在HTML中添加一些基础结构和…...
react中的formik如何使用
介绍: Formik 是一个用于处理表单状态和验证的 React 库。它提供了一种简化和统一的方式来处理复杂的表单逻辑,包括表单值的管理、表单验证、表单提交和错误处理等。 使用 安装 Formik 和 Yup(用于表单验证): // ba…...
MYSQL储存过程
一、概念及形式 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令,通俗来讲存储过程其实就是能完成一定操作的一组SQL语句。 1、自定义语句结束符 DELIMITER $$ 2、创建 使用CREATE动作及PROCEDURE关键字进行过程创建,一般格式为&…...
XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
LeetCode - 199. 二叉树的右视图
题目 199. 二叉树的右视图 - 力扣(LeetCode) 思路 右视图是指从树的右侧看,对于每一层,只能看到该层最右边的节点。实现思路是: 使用深度优先搜索(DFS)按照"根-右-左"的顺序遍历树记录每个节点的深度对于…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
