C#入门个人学习笔记

【C#】C#入门学习笔记 C#的自用笔记——基础部分 阅读详情

零、前言:

本人按照哔哩哔哩up主唐老狮进行学习,所使用的ide为Visual Studio 2022。

如下述内容在数据或逻辑上存在偏差,请您给予指正。

一、创建第一个C#程序:

当然是hello world了!代码如下:

using System;//导入 System 命名空间

class Program//定义了一个名为 Program 的类
{
    static void Main()//程序的入口点。
    {
        Console.WriteLine("Hello, World!");
        Console.ReadLine();
    }
}//1-1

嗯,这就是最简单的一个程序。

二、输入输出函数:

以最基础的Console类为例:

①Console.WriteLine()和Console.Write()

两者都用于输出,

Console.WriteLine(): 用于将文本输出到控制台并在末尾添加一个换行符。

Console.Write():与Console.WriteLine() 类似,但不会在末尾添加换行符。

举个例子:

using System;
class Program
{
    static void Main()
    {
        Console.Write("hello");
        Console.WriteLine("world");
        Console.Write("!");
    }
}//2-1

但是运行之后,程序立即结束了!因为当程序执行完所有语句后,程序会自动终止。而在这个例子中,由于没有其他代码阻止程序终止,程序会在输出完 "hello", "world", "!" 之后立即结束。

如果想要看到我们预期看到的结果,还需要引入一个新的函数——

②Console.ReadLine()

这个函数用于读取用户输入的一行文本并储存于变量中,但是,为了让程序暂停,可以使用 Console.ReadLine()来等待用户输入一行文本,以看到我们程序的结果。

在代码2-1中,我们加入了Console.ReadLine()后,终于得到了我们想要的结果:

③Console.ReadKey()

与Console.ReadLine()作用相似,也会暂停程序的执行,等待用户按下键盘上的一个键。在程序暂停下,Console.ReadKey()只等待用户按下一个键,用户按下键后程序立即继续。而Console.ReadLine() 会一直等待用户输入一行文本并按下回车键。

三、变量:

变量声明指定了变量的类型和名称,变量名称必须遵循 C# 的命名规则,通常以字母或下划线开头,后续可以包含字母、数字或下划线。

变量的类型大致有以下四种:

①有符号整型变量

sbyte:8位有符号整数,范围是 -128 ~ 127;

short: 16 位有符号整数,范围是 -32768 ~ 32767;

int:32 位有符号整数,范围是 -2^31 ~ 2^31 - 1;

long:64 位有符号整数,范围是 -2^63 ~ 2^63 - 1;

②无符号整型变量

byte: 8 位无符号整数,范围是 0 ~ 255;

ushort:16位无符号整数,范围是 0 ~ 65535;

uint:32位无符号整数,范围是 0 ~ 2^32 - 1;

ulong:64位无符号整数,范围是0 ~ 2^64 - 1;

③浮点数

即小数,存储一定容量的有效数字,超过有效数字的,进行四舍五入并舍弃。

float:存储大约7位有效数字;

和cpp不太一样,float型的变量初始化需要在数字后面加一个“f”,比如3.14f,0.1234f。

double:存储大约15位有效数字;

decimal:存储大约27位有效数字。

④特殊类型

bool:布尔数,只存储true和false两个值;

char:字符类型,存储单个字符;

string:字符串类型,存储多个字符;

四、变量的本质

①变量的存储空间

使用sizeof(变量类型)可以得到该类型的存储空间大小(单位为字节),以下面代码为例:

using System;
class Program
{
    static void Main()
    {
        // 整数类型
        Console.WriteLine("byte 所占字节数: " + sizeof(byte));
        Console.WriteLine("sbyte 所占字节数: " + sizeof(sbyte));
        Console.WriteLine("short 所占字节数: " + sizeof(short));
        Console.WriteLine("ushort 所占字节数: " + sizeof(ushort));
        Console.WriteLine("int 所占字节数: " + sizeof(int));
        Console.WriteLine("uint 所占字节数: " + sizeof(uint));
        Console.WriteLine("long 所占字节数: " + sizeof(long));
        Console.WriteLine("ulong 所占字节数: " + sizeof(ulong));

        // 浮点类型
        Console.WriteLine("float 所占字节数: " + sizeof(float));
        Console.WriteLine("double 所占字节数: " + sizeof(double));
        Console.WriteLine("decimal 所占字节数: " + sizeof(decimal));

        // 字符类型
        Console.WriteLine("char 所占字节数: " + sizeof(char));

        // 布尔类型
        Console.WriteLine("bool 所占字节数: " + sizeof(bool));
        Console.ReadKey();
    }
}//4-1

运行之后,我们看到结果:

为什么没有string类型的呢?因为string类型储存的字符串长度可变无上限。

②变量的本质

计算机在底层存储和处理数据是基于二进制的。从计算机存储的最终形式看,变量的值确实是以二进制的形式存储在内存中的。

五、变量的命名规范

不能重名;

必须以字母、下划线_或@符号开头,后续可以包含字母、数字、下划线;

不能包含空格或其他特殊字符;

不能使用程序关键字命名。

常用命名规则:

①驼峰命名法:

第一个单词的首字母小写,后续单词的首字母大写,比如string myName="奶龙";

②帕斯卡命名法:

所有单词首字母大写,比如:char MyGender='m'。

六、常量

常量的申明固定写法为:const 变量类型 变量名 = 初始值; 

比如const int a = 2; 

常量的特点:1、必须初始化;2、不能被修改

作用:申明一些常用而不变的变量。比如计算多个圆面积,我们可以声明  const float PAI=3.14f,大大简化我们代码。 

七、转义字符

转义字符是一些特殊的字符序列,用于表示难以直接输入或具有特殊含义的字符。比如在字符串中表现单双引号,空行等。

固定写法:\字符。

一些转义字符:

换行:\n;

斜杆:\\;

制表符:\t;

光标退格:\b;

警报音:\a;

怎么取消转义字符呢?使用 @ 符号作为前缀,它会将字符串中的转义字符当作普通字符处理。

八、类型转换

类型转换就是不同变量类型之间相互转换,分为两种转换:

①隐式转换

基本规则:不同类型之间自动转换,大范围装小范围。因为,大范围数据类型转换为小范围数据类型时可能导致数据丢失或溢出。

比如:

int n1 = 1;
double n2 = n1;

n1值赋给n2,发生了隐式类型转换,因为int类型的值可以安全地转换为double类型(double类型精度更高)。当n1的值被赋给n2时,n1的整数值 1 会被转换为double类型的值 1.0,并存储在为n2中。

②显式转换

依旧遵循大范围装小范围的规则,有两种方法。

方法一:括号强转:

顾名思义,通过在要转换的值或变量前面加上目标数据类型的括号来实现强制转换变量类型。

语法:变量类型 变量名 = (变量类型)变量名

例如:int i=(int)1.6f,转换过程中舍去了小数点后的数字,结果i=1。

方法二:Parse:

用于将字符串类型转换为能够转换的对应类型。

语法:变量类型.Parse("字符串")

例如:int i=int.Parse("123");这样,通过转换之后我们使得i=123。

方法三:Convert:

更精确地进行类型转换。

语法:Convert.To目标类型(常量或变量)

例如:int i=Convert.ToInt32("123");通过转换之后我们仍然使得i=123。

九、字符串拼接

聪明的你一定发现我跳了一些内容,我觉得那些太过于基础了(对于先学过其他编程语言而言)

c#的字符串拼接很有意思,通过“+”就可以了。

以下面代码为例:

using System;
class Program
{
    static void Main()
    {
        string str1 = "123";
        string str2 = str1 + "456";
        Console.WriteLine(str2);
        Console.ReadKey();
    }
}

通过“+”拼接str1和“123”,我们使得str2变成了"123456"

还有一种方法,使用string Format(),

语法:string.Format(“待拼接的内容”,内容1,内容2...内容n),

其中带拼接的内容使用占位符代替{数字}(从0依次到n)

比如:

using System;
class Program
{
    static void Main()
    {
        string str = string.Format("{0}加{1}等于{2}", "一", "一", "二");
        Console.WriteLine(str);
        Console.ReadKey();
    }
}

我们输出了一加一等于二这个结果。

十、后记

此篇笔记一开始作于11月份,已被我耽搁很久。

我是从C语言过来学的,因而那些循环、条件语句都已经会了,因而直接跳过了。

后面翻了下基础篇,数组、结构体、那几个简单的排序算法也掌握了,以现在的程度,已经可以开始学习核心篇。

唉,草草结尾吧,开始核心篇的学习吧。

嗯,就这样吧。

【唐老狮】C#——函数重载 目前我们已经学习关于函数的四个知识点:函数、ref和out、变长参数,参数默认值,其中三个知识点都是和函数参数紧密联系的。而今天我们要学习的函数重载也是和函数参数相关的,让我们开始吧。 【函数重​载】 【理论概念】 重载概念 ↓↓↓↓ 强记忆 几句话 ↓↓↓↓ 函数(方法)名相同 参数的数量不同 或者 参数的数量相同 参数的类型或顺序不同 ​​函数重载的前提是,在同一个结构体或者类的语句块中。存在两个或者两个以上的同名函数,当同名满足上方... 阅读详情

相关推荐

【唐老狮】C#——多态:抽象类和抽象方法

上篇回顾 概念 同一类型对象 执行相同行为 有不同的表现 多态的实现 ↓↓↓↓ 编译时多态 函数重载 运行时多态 虚函数(vob) 抽象函数(之后讲) 接口(之后讲) vob virtual(虚函数) override(重写) v和o结合使用 实现多态 base(父类) 保留父类行为 ​​上一篇我们已经学习了多态的基本概念,和利用vob来实现多态。今天我们将学习多态的另一种实现——抽象类和抽象函数。 【抽象类和抽象函数】 ...

MrTang_Unity的博客 589

-唐老狮-C#入门运算符笔记

条件、逻辑、位、三目运算符

weixin_52398264的博客 273

《C# 语言入门详解(刘铁锰) - 学习笔记》

C# 学习笔记 文章目录C# 学习笔记前言一、C# 语言及其特点1. C# 语言概念及其特点2. 认识.NET Framework & .NET Core二、C# 语法基础1. 关键字2. 类型3. 变量、常量与注释4. 表达式5. 数组、集合与字典6. 分支、循环语句7. 访问修饰符(封装)8. 方法(函数)9. 类和对象三、C# 语法进阶1. 委托(Delegate)2. 泛型(Generic)3. 接口(Interface)四、C# 补充1. 继承与多态2. 枚举类型与结构体3. Lambd

iceberg7012的博客 1万+

-唐老狮-C#基础 数组笔记

同一变量类型的数据集合,所有的变量类型都可以申明为数组返回数值等于(数组的索引/下标从0开始,等差递增数列,差值为1):array[<index>]:array[<index>] = 要赋予的值;通过for语句遍历数组,的值:因为数组被创建时就锁定了内存空间大小,所以要:用for+if语句。

weixin_52398264的博客 203

【教程】七天入门C#上位机目录

目录1. 概述1.1 目标1.2 学习资源1.3 学习建议1.4 宣传语2. 系列目录 1. 概述 1.1 目标 总结项目成果,分享实战经验。通过本教程的练习,期望达到简单上位机的开发,能提高工作效率。 1.2 学习资源 vs2019安装和使用教程(详细) 优快云博主:悲恋花丶无心之人的这篇博文很详细地讲解了visual studio的安装下载,对于刚上手C#开发的同学有参考意义,工欲善其事必先利其器。 菜鸟教程 C#教程 基础知识讲解全面到位,代码例程很多,能够满足对于基础语法的了解和学习。

汽车电子软件领域知识分享 2万+

OpenCV 常用的API总结(迅速查询)

OpenCV基本操作 openCV安装 读取图片(IO操作) 绘制集合图形 图像加法以及混合操作 OpenCV图像处理 图像几何变换 形态学操作 图像平滑 直方图 边缘检测 模板匹配 傅里叶变换 轮廓检测 图像分割 图像特征提取 SIFT检测关键点 视频读写............

Peyzhang的博客 3935

C#入门--学习记录

集成开发环境,编程软件。

nana_7654321的博客 2131

Windows 下 Codex MCP 服务配置全攻略:从环境搭建到实战避坑

本文详细介绍了在Windows系统下配置Codex MCP服务的完整流程与实战避坑指南。内容涵盖从Node.js环境搭建、Codex CLI安装,到核心配置文件config.toml的编写与解析,并重点解决了Windows平台特有的环境变量设置、MCP服务启动命令适配等关键难点,帮助开发者顺利完成从环境准备到编辑器插件连接的整个配置过程。

weixin_28826545的博客 2067

C#学习笔记(上)

经本人搜集网上资料后整合而成的C#学习笔记,知识点很全面,前面某些很基础的内容绝大部分人都已经在学C/C++的时候学过了,所以基本一笔带过,其它地方都尽量写的很详细。

m0_75104457的博客 2315

基于NXP i.MX RT1180的无传感器FOC电机驱动实战指南

磁场定向控制(FOC)是一种先进的电机控制技术,它通过精密的数学变换,将三相交流电机的控制解耦为独立的转矩和磁场分量,从而实现高效、平稳、低噪音的驱动。其核心原理在于利用Park/Clark变换,在旋转坐标系下对电流进行线性控制。这项技术的价值在于显著提升了永磁同步电机(PMSM)的效率与动态性能,广泛应用于机器人、无人机和工业自动化等高精度场景。本文聚焦于利用NXP i.MX RT1180跨界处理器及其MCUXpresso SDK,快速实现一套完整的无传感器FOC解决方案。通过解析硬件平台选型、软件架构,

weixin_33925615的博客 303

Mcgs 屏幕Modbus RTU通讯调试

昆仑通态屏幕作为Modbus Master 与 Modbus Slave通过RS485接口实现通信的调试记录

madao1234的博客 5568

C#从入门到精通

C#从入门到精通

qq_46555046的博客 1万+

Agent测试框架Harbor指南

Harbor是一个AI Agent单元测试框架,用于自动化测试AI代理在容器环境中的任务执行能力。它支持18+种AI代理,通过沙箱隔离和自动验证机制评估任务完成情况。任务必须具有可编程验证的输出结果,适合代码、数据、系统等可量化任务,不适合创意写作等主观任务。Harbor采用CLI操作方式,核心架构包含Job管理、Trial执行和验证器三个层级,执行流程包括环境启动、Agent执行和结果验证。任务目录包含指令文件、配置文件、Docker环境定义和测试脚本等必需组件,通过测试脚本自动判断任务完成质量。

loo_Charles_ool的博客 1395

C#入门 个人笔记

C#入门的知识点

weixin_52402845的博客 1640

OpenCV中SGBM中BT代价计算

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

qq_27606639的博客 5976

RAP BDL 里的 field ( readonly ) 到底控制了什么?——从语法到运行时的全景解析

RAP行为定义中的只读字段控制 摘要:该代码片段展示的是RAP(ABAP RESTful Application Programming)行为定义语言(BDL)中的字段控制语法,用于声明业务对象中需由框架自动维护的只读字段。field ( readonly )语句将订单ID和审计字段(CreatedBy/CreatedAt等)标记为只读,确保这些字段在更新阶段不可修改。在managed场景下,RAP框架会自动处理这些行政性数据的写入:创建时填充创建信息,更新时刷新变更记录,并利用LocalLastChang

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 154

C#和WPF入门教程

C# wpf快速入门

weixin_45589116的博客 3万+

simulink建模仿真实例1000例--第375例:基于Simulink进行复杂交通流的仿真建模

特点多车互动:模拟多个车辆之间的相互作用。动态变化:交通流量随时间和事件(如事故、天气变化)而变化。多样化驾驶行为:考虑不同的驾驶员行为模式(激进型、保守型等)。挑战准确性:准确地模拟各种因素对交通流的影响。实时性:处理大量车辆数据,并迅速做出反应。可扩展性:支持从简单场景到复杂城市交通网络的扩展。首先明确要模拟的任务内容。模拟不同类型的车辆(轿车、卡车、公交车等)。考虑不同驾驶员的行为模式。分析交通拥堵、事故对交通流的影响。

xiaoheshang_123的博客 202

c#个人向总结

abstract修饰的类即抽象类不能实例化,和Java一样可以多继承接口法一:要排序的类继承接口,实现其中的方法(以类的自定义为例,通常需要传入另一个类作为other与本类this比较)法二:使用List自带的Sort方法重载,传入逻辑比较函数1 : -1;});

abc369_7的博客 1088

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

c#学习笔记

c#学习笔记

Yamoonn的博客 1214

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# 学习笔记

MicrosoftVisualStudio(简称VS)是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,是编写C#程序或者说.NET程序最常用的开发工具。因其功能强大、简单易用、速度快、智能度高,被网友戏称宇宙第一IDE。

qq_52144597的博客 2046

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# 基础入门

关键字,是一些被C#规定了用途的重要单词。在Visual Studio的开发环境中,关键字被标识为蓝色,下图代码中,用红方框圈出的单词就是关键字。关键字,这个关键字的用途是声明类。比如上面例子中,类名叫做Program。关键字,这个关键字的用途是声明“命名空间”。比如上面例子中,命名空间叫做MyApp1。关键字,这个关键字的用途是导入命名空间。作用是导入System.Text命名空间中的类。关键字(静态的)、(无返回值)、(字符串类型)。Main() 方法是 C# 中的特殊方法,是。

钢铁男儿 2990

C# 个人学习笔记

C# 简介 ​ **C#**是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言,它不仅去掉了 C++ 和 Java 语言中的一些复杂特性,还提供了可视化工具,能够高效地编写程序。 ​ **C#**是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。 ​ **C#**使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,而绝不损失C/C++原有的强大的功能。因

m0_54516955的博客 826

C#入门学习笔记 #3(基本元素、类型、变量、方法、算法)

本文分享了C#学习笔记的要点,包括基本元素(关键字、操作符、标识符等)、命名规范、类型与变量、方法的概念。特别介绍了var关键字的使用建议,并通过简单算法示例(循环和递归)演示了编程思想。文章强调实践的重要性,建议初学者结合实际代码练习来巩固知识,未来将持续更新更多C#内容和算法题解。笔记风格简洁实用,旨在帮助读者快速掌握C#基础。

m0_73612206的博客 797

<C#入门经典>学习笔记1之初识C#

序言 选择《 C#入门经典第五版》作为自学书籍,以此记录学习过程中的笔记与心得。C#简介 1. C#是一种块结构的语言 2. C#区分大小写C#变量 C#的变量定义与C语言类似一、变量类型及定义 整形及范围定义 浮点型及范围定义 float和double以±m∗2 e  ±m*2^e的形式存储浮点数 Decimal以±m

baidu_34513951的博客 5174

C#学习笔记

小白的C#笔记

wmss003的博客 1695
下一篇: HTML5基础个人学习笔记
森雨Senyu
博客等级 码龄2年 166粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值