【C#】基础巩固
最近写代码的时候各种灵感勃发,有了灵感,就该实现了,可是,实现起来有些不流畅,总是有这样,那样的卡壳,总结下来发现了几个问题。
1、C#基础内容不是特别牢靠,理解的不到位,导致自己想出来了一些内容,但是无法使用正确的C#代码实现,导致灵感无法完美实现。
2、灵感有些天马行空,没有见过足够多的案例,也没有阅读过足够多的代码,导致自己的想法在落地实现的过程中有些偏离了方向。
结合以上两个问题,于是有了这样一篇文章,代表着我要从头开始一点一点的梳理基础。这篇文章是分享篇,把自己学习过程中的点滴记录下来(PS:都说最好的学习方式是费曼,也就是教别人学习,分享出来也是一种费曼,尤其是敲字敲下来,需要思考的过程,这样更加巩固了)。
我是跟着菜鸟教程从头到尾去学习的,然后会跟着里面的代码案例去理解哈。
目录
1、基础--hello world
2、代码解析
1、C#代码的基础了解
2、工具类----Console
3、让电脑说hello world
4、一个工具的多种用法
5、尝试十八般武艺
1、基础--hello world
首先就是基础中的基础---hello world
using System;
namespace HelloWorldApplication
{class HelloWorld{static void Main(string[] args){/* 我的第一个 C# 程序*/Console.WriteLine("Hello World");Console.ReadKey();}}
}
看完菜鸟教程的说法,我现在又有了一番别样的理解:我们可以把代码当作是一台机器,机器运行需要各种零件,也需要使用机器的目的,同时也需要我们有原材料。
再简单点说:原材料----放入机器----产出内容。
然后,我们来看这篇代码。
目的是什么? 让我们的电脑程序说hello world。
原材料是什么? C#代码。
机器是什么? 我们运行程序的软件
那么我们要想知道怎么达成目标,就要了解这三者。
其中代表机器的软件,这里我就不多说了,大家可以去看网上的软件安装和使用教程,这里只说C#语言理论基础,而且会围绕着hello world这句话开始解析。
2、代码解析
1、C#代码的基础了解
原材料C#代码我们就要仔细了解一下了。

第一行 using System。using 代表的是引用,引用什么呢,引用组件库,这里System就是一个组件库,当然我们可以抽象的理解为一个工具箱,而System则是C#语言为我们准备的用来编辑系统的一个组件库。
using 后面跟随的就是各种各样的工具箱(组件库),里面放满了各种工具。就像我们平常修电灯泡,修电视机,修各类东西得时候需要先找工具箱一样,我们去写代码的时候第一步就是去using各种组件库工具箱。
如果想要使用C#语言中提前给我们准备好的工具的话,我们必须先把这个工具箱拿出来,而使用using就代表了我们告诉电脑,我们拿出来了system工具箱。
这里我们使用System就代表我们要用这个工具箱中的一个工具,那我们用到的究竟是哪个工具呢??
这里,我们回到整篇代码中,把鼠标放在屏幕中间的Console上(如下图位置1的字母上。这里建议自己在软件内敲一遍之后跟着操作看一下),这样就能看到如下图出现的一行字,class System.Console,显示如下图位置2的地方。

这句话代表什么意思呢?我们可以粗略的理解为Console这个工具是属于System工具箱的。而System和Console中间的点就代表的是路径,就像我们打开文件管理器中的那个 \ 符号一样。

这里的打包文件是属于 Program Files文件夹路径下的一个文件夹。
2、工具类----Console
而这里的Console则是属于System工具箱中的一个工具,用专业术语来说,就是Console是属于System的一个类,作用是控制电脑的输入和输出。(这里面类也是专业术语,就像鸟类,虫类一样是某一个种类。)
这样我们就明白了他们的关系,using System是使用了一个叫做System的工具箱,而我们在下面的代码中,使用了一个叫做Console的管理输入和输出的工具,它是从System中拿出来的。
那么,这里我们使用Console工具的作用是什么呢?
我们接着往下看,看我们整篇代码的中间部分。

上图是我们的原代码,刚才我们说到了一个点,就是System和Console中间有一个点,代表Console是从System中拿到的。
那么这里,我们看到,在Console的后面还有一个点,点的后面是WriteLine外带一个括号和一句话,那么是不是意味着,我们可以理解WriteLine也是从Console中拿出来的呢?
那么我们敲击代码的时候,可以看到一个现象,就是当我们Console敲出来之后,会出现一个下拉列表,如下图:

这个下拉列表简单来说,就是Console这个工具所拥有的方法。
怎么理解呢?我们平常用到的工具非常多,像是螺丝刀,扳手,钳子等等,他们都有自己的使用方式和材质。而这里的下拉列表就是代表了Console这个工具的”使用方式“和”材质“,这里我们不过多研究。
3、让电脑说hello world
当我们打出来点之后,会自动选中第一个WriteLine,我们敲下回车之后,这个单词就会自动输入屏幕上。但是如果我们想要一句完整的代码,则需要在后面加上一对括号,同时需要在括号后面加上分号,并且需要使用英文输入法才能算作一句代码,下图为完整的一行代码。

WriteLine,看到这个单词的时候,会英语的一眼就能认出来了,这个单词是写的意思,只不过后面加上了一个Line,而在C#代码中,它的意思是将数据写入控制台并自动换行。
但是,我们的目的是让代码输出一句Hello world,只是这个功能是不够的,还需要我们把想要输出的内容让代码帮我们实现。
我们的WriteLine后面的括号可以不放任何东西,代表自动换行。
但是我们也可以在括号中的双引号内输入任意字符(英文,汉字,符号,个别符号例外),这样就代表了我们想要把双引号内的指定内容输出并换行。

我们在括号中输入"Hello World!",然后按下F5,这样就会出现一个弹窗,里面会有一句话:"Hello World!",这就代表着我们完成了第一句代码的输出,当然,出现的弹窗我们可以直接关闭,就能回到编辑模式了。
简单回顾一下,想要使用C#语言让电脑说Hello World!,首先找到管理输入输出的功能模块,然后找到里面负责输出的那一个功能,然后让它输出Hello World!"就行了。
先 using System ,然后在Main下图的花括号中输入Console.WriteLine("Hello World");,最后F5执行就可以了。

这里,如果只是按照我说的做,窗口可以一闪就过了,那么我们在Console.WriteLine("Hello World");的这句话后面添加一句话Console.ReadKey();,就可以让我们的窗口暂停在我们的显示器界面上,让我们看到最后结果。
Console.ReadKey();这句话的意思暂时不解释,大家可以接着往下看。
4、一个工具的多种用法
不知道大家发现没有,没有任何内容和输入内容的两个方式,效果完全不一样,这是为什么呢?

其实,这样就涉及到一个概念:一个工具多种用法。
这里我们知道Console是一个类,它是负责电脑的输入输出。而WriteLine是这个类中的一个使用方式,专业术语叫做方法。
但是,这个方法有很多种用法,就像我们的扳手一样,可以用来拧螺丝,也可以用来敲钉子,也可以用来上演武术(开个玩笑)。
我们的方法也有十八般武艺,如下图:

我们可以看到,在途中用红框框选中的地方,红框1是鼠标放置的位置,红框2则是当鼠标放上去之后,会显示的内容。
我们在图中可以看到,这句话代表着WriteLine是来源于Console,而括号中间的string value代表着我们可以在括号里面放置任何带双引号的文字内容,最后的(+18多个重载)则是代表我们的WriteLine会根据括号内放置的内容不同,有十八种用途(PS:还真是十八般武艺)。
说到十八般武艺了,可能扳手啥的,我们能看到实物,可以多尝试几次,那么代码我们怎么知道用途,怎么尝试呢?
5、尝试十八般武艺
这里有一个有意思的方式,会让我们知道它都有哪些十八般武艺,如下图:

可以看到,这里的WriteLine单词下面有一条横线,这是我按下了Ctrl键的同时,把鼠标左键放在WirteLine上,当我点下左键之后,我们就会跳到这个单词的说明书内,如下图:

里面密密麻麻的一串英文,看着挺复杂,但也挺简单,因为这里就是这个单词WriteLine的内置说明书。
C#语言怕你学不会,然后给你的都有内置的说明书,每个单词都是这样。如果不会英文也好办,摘要就是单词的说明,我们直接把摘要里面的英文复制粘贴到翻译里面,结果就是这样咯:

看完这个之后我们可以看到有很多类似的方式:

刚才我们从头到尾的了解了WriteLine的两个使用方式,一个是只有括号的,是换行,第二个是加入Hello World!的,输出了Hello World!。
那么我们尝试一下上面图中的其他方式,不会?复制摘要粘贴到翻译里面,了解了是什么意思再尝试一下吧。
有感而发的一个分享理解的帖子,大家可以看一下,有什么不对的地方可以留言哈。。
相关文章:
【C#】基础巩固
最近写代码的时候各种灵感勃发,有了灵感,就该实现了,可是,实现起来有些不流畅,总是有这样,那样的卡壳,总结下来发现了几个问题。 1、C#基础内容不是特别牢靠,理解的不到位ÿ…...
基于Skywalking开发分布式监控(一)
接手为微服务系统搞链路监控项目一年多,也和skywalking打了一年多的交道,也应该有个总结,主要谈一下搭建监控系统遇到的难点和解决方案。 说明: 本文的代码均由本地演示代码替代,非实际代码 为啥选skywalking…...
高防服务器什么意思
高防服务器什么意思,为什么要用高防服务器,小编为您整理发布高防服务器什么意思的解读。 高防服务器是指具备较高防御能力的服务器,能够抵御DDoS/CC等网络攻击。 高防服务器通常用于保护游戏、APP、金融、电商等业务,这些领域因为…...
C/C++ - Auto Reference
目录 auto Reference auto 当使用auto关键字声明变量时,C编译器会根据变量的初始化表达式推断出变量的类型。 自动类型推断:auto关键字用于自动推断变量的类型,使得变量的类型可以根据初始化表达式进行推导。 初始化表达式&#x…...
springboot项目快速引入knife4j
引入依赖 <dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version> </dependency>knife4j配置文件 basePackage改为自己存放接口的包名 /*** Kn…...
SpringBlade微服务开发平台
采用前后端分离的模式,前端开源两个框架:Sword (基于 React、Ant Design)、Saber (基于 Vue、Element-UI)后端采用SpringCloud全家桶,并同时对其基础组件做了高度的封装,单独开源出一个框架:BladeToolBladeTool已推送至…...
【运维】Ubuntu18.04系统docker方式安装ElasticSearch和kibana
前言 最近需要搭建一套测试环境,用到了ElasticSearch( 简称es)搜索引擎,安装过程有些曲折,记录下来作为经验。 正文 环境 Ubuntu18.04 操作系统Docker Server Version: 20.10.7ElasticSearch Version: 8.5.3Kibana Version: 8.5.3 说明 E…...
五种单例模式
在整个程序中,保持只有一个实例对象,就是单例模式。 单例模式可以减少构建,GC的次数,提升性能,还能减少堆内存的开销。 1. 懒汉式 在需要使用对象的时候,才进行创建 通过private构造方法,确保…...
【ceph】ceph关于清洗数据scrub的参数分析
本站以分享各种运维经验和运维所需要的技能为主 《python零基础入门》:python零基础入门学习 《python运维脚本》: python运维脚本实践 《shell》:shell学习 《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战 《k8…...
自然语言NLP学习
2-7 门控循环单元(GRU)_哔哩哔哩_bilibili GRU LSTM 双向RNN CNN 卷积神经网络 输入层 转化为向量表示 dropout ppl 标量 在物理学和数学中,标量(Scalar)是一个只有大小、没有方向的量。它只用一个数值就可以完全…...
js实现填涂画板
文章目录 1实现效果2 实现代码 凑个数,存粹是好玩儿,哈哈... 1实现效果 最上方一栏: 左侧是颜色按钮,点击选中颜色, 中间是功能按钮,重置颜色、清空画板、回退、涂改液(填涂色置为白色ÿ…...
springboot农机电招平台源码和论文
随着农机电招行业的不断发展,农机电招在现实生活中的使用和普及,农机电招行业成为近年内出现的一个新行业,并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单,变高效。…...
TensorFlow 深度学习 开发环境搭建 全教程
PyTorch 深度学习 开发环境搭建 全教程 TensorFlow 深度学习 开发环境搭建 全教程 1、指定清华源命令 -i https://pypi.tuna.tsinghua.edu.cn/simple2、conda安装 这是AI开发环境的全家桶,官网下载链接Anaconda | Start Coding Immediately 尽量不要选择太新版本…...
Qt —— QCharts之曲线示波器(附源码)
示例效果 介绍 Qt5.7 版本后 Qt Charts 的发布。Qt Charts可以创建时尚的、交互式的、以数据为中心的用户界面。Qt Charts使用Qt Charts来简化集成。图表组件可以用作或对象或QML类型。 该类管理不同类型的系列和其他图表相关对象(如图例和轴)的图形表示形式。是一个可以在 .…...
【秒剪】如何更换视频画幅比例以及画面背景?
Step1:点击上方显示的画幅比例 Step2:在下方选择合适的视频画幅或更换画面背景 Step3:点击上方【填充方式】 Step4:选择合适的填充方式即可 Step5:点击这里即可自定义视频背景...
HarmonyOS鸿蒙学习笔记(23)监听Wifi状态变化
监听Wifi状态变化 前言创建接收状态变化的Bean对象创建订阅者和订阅事件参考资料: 前言 本篇博文通过动态订阅公共事件来说明怎么使用HarmonyOS监听Wifi状态的变化。关于动态订阅公共事件的概念,官网有详细说明,再次就不在赘述。博文相关项目…...
mac 安装配置oh-my-zsh
1. 安装brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 按照步骤安装即可 安装完成查看版本 brew -v 2. 安装zsh brew install zsh 查看版本 zsh --version 3. 安装oh-my-zsh github官网链…...
[pytorch入门] 2. tensorboard
tensorboard简介 TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中.但是也可以独立安装,服务Pytorch等其他的框架 可以常常用来观察训练过程中每一阶段如何输出的 安装pip install tensorboard启动tensorboard --logdir<d…...
基于卡尔曼滤波的平面轨迹优化
文章目录 概要卡尔曼滤波代码主函数代码CMakeLists.txt概要 在进行目标跟踪时,算法实时测量得到的目标平面位置,是具有误差的,连续观测,所形成的轨迹如下图所示,需要对其进行噪声滤除。这篇博客将使用卡尔曼滤波,对轨迹进行优化。 优化的结果为黄色线。 卡尔曼滤波代码…...
GBASE南大通用分享如何更新嵌套的集合
如果您想要更新集合的集合,则必须声明游标来访问外层的集合,然后声明嵌套的游标来 访问内层的集合。 例如,假设 manager 表有一附加的列 scores,它包含一其元素类型为整数的 MULTISET 的 LIST,如下图所示。 更新集合…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
蓝桥杯 2024 15届国赛 A组 儿童节快乐
P10576 [蓝桥杯 2024 国 A] 儿童节快乐 题目描述 五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。 今天是六一儿童节,小蓝老师为了让大家在节…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
重启Eureka集群中的节点,对已经注册的服务有什么影响
先看答案,如果正确地操作,重启Eureka集群中的节点,对已经注册的服务影响非常小,甚至可以做到无感知。 但如果操作不当,可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
接口自动化测试:HttpRunner基础
相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具,支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议,涵盖接口测试、性能测试、数字体验监测等测试类型…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...
