C#基础到入门(一篇就够了)(一)

简介: C#基础到入门(一篇就够了)

C#


简介


C#是微软公司发布的一种由C和C++衍生出来的面向对象的编程语言,它不仅去掉了 C++ 和 Java 语言中的一些复杂特性,还提供了可视化工具,能够高效地编写程序。

C#是由C和C++衍生出来的一种安全的、稳定的、简单的、优雅的面向对象编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。

C#使得C++程序员可以高效的开发程序,且因可调用由 C/C++ 编写的本机原生函数,而绝不损失C/C++原有的强大的功能。因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。

C#关键字


image.png

image.png

image.png

image.png

🍺C#初次体验


⌨使用Visual Studio创建第一个项目 打印Hello world!


1.1 创建项目

打开VS->新键项目->找到控制台程序(.NET Framework)->下一步->创建

eg:

1.png

1.2 打印Hello world!


🔔如何编译当前程序?


1.C#程序–人能看懂,机器看不懂

2.执行程序的确是机器

3.需要将C#程序编译(翻译)成机器能够读懂的语言(二进制)

4.这样程序就可以被机器执行了

5.Windows:生成->生成解决方案 Ctrl + Shift + B


🔔如何运行当前程序?

1.Windows:运行而不调试(Ctrl + F5/F5)

eg:

2.png

🔔注释

1.注释是不会被编译的,更不会被执行

2.注释的作用:

3.解释说明当前的代码是什么含义

 3.1、强调

 1.在目前学习代码阶段,保证你写的每行代码都要配一行注释

 2.解释说明,你这句代码是什么含义

 3.1、暂时取消某些代码的执行

 快捷键:

  注释当前选中行的代码:Ctrl + K + C

  取消注释当前选中行的代码:Ctrl + K + U

🍺MSDN


MSDN地址


https://docs.microsoft.com/zh-cn/dotnet/api/system.reflection.fieldinfo?view=netframework-4.7.2

🍺数据类型


⌨数据的量级


  • 1024字节(byte)=1KB
  • 1024KB = 1MB
  • 1024MB = 1GB
  • 1024GB = 1TB
  • 1024TB = 1PB

⌨数据类型


bool 0000 0000 false 0000 0001 true

sbyte 有符号的8位整数 000 0000 — 111 1111 (0-127)

 1.第一位表示符号(+ -)

 2.特殊0:1000 0000 和 0000 0000

 3.硬性规定:1000 0000 表示-128

 4.取值范围:-128—+127

byte无符号的8位整数

 1.0000 0000 —— 1111 1111

 2.取值范围 0 ——255

short有符号的16位整数(文档中是Int16)

 1.000 0000 0000 0000 —— 111 1111 1111 1111

 2.负32768到正32767

int有符号的32位整数(文档中是Int32)

最常用的整数类型

一般说整型即int类型

无特殊情况,存储一个整数都用int

int占4个字节(面试经常问)

long有符号的64位整数(文档中是Int64)

浮点数(通常理解就是生活中的小数)

float(单精度浮点数)【文档中查:Single】

一般情况下,float足够

double(双精度浮点数)【文档中查:Double】

如果需要精度更高一点,用Double

decimal(高精度浮点数)

极少用到,天文数字可能会用到这个

⌨常量、变量


程序运行期间

程序开始到程序结束

变量:在程序运行期间,可以被改变

变量的声明

数据类型 变量名 = 初值;

⌨ int a = 10;

变量可以不赋初值(在特殊情况下必须要赋初值)

不赋初值时,当前变量的值是默认值

int/float 默认值是0

char 默认值’\0’(表示空字符)

常量:在程序运行期间,不能被改变

常量的声明

const 数据类型 变量名 = 初值;

大写(潜规则)

⌨ const float money = 100.35f;

常数必须要赋初值

浮点型声明时注意:

float flo = 1.11f;【float数字后面要加f】

double damage = 1.11d【double后面要加d】

decimal damage = 1.223m【decimal后面要加m】

字符型声明注意:

字符类型(一定要用单引号括起来)

char cha = ‘name’;

常量及变量的命名规则

只能由字母、数字、@和下划线(_)这些组成

数字不能开头,⌨ 1a❌、3f❌、xiaoming1✅

@符号,要么不用,要用必须放在首位,🌰@zhansan✅,zhang@san❌

不能与系统的关键词同名,⌨ int,long,sbyte❌

变量名不能重复

中文变量名语法上是可以的,但极为不推荐

常量及变量的命名规范

全是英文单词,不要用拼音

驼峰命名法

大驼峰(每个单词的首字母大写,其余字母小写)

MyHeroDamage、HeroAttack

小驼峰:(第一个单词首字母不大写,后面每个单词的首字母大写,其余字母小写)

myHeroDamage、heroAttack【目前阶段都用小驼峰】

见名知意

yyds(你晓得这是啥?评论区见)❌

🍺运算符


⌨数据的量级


  • 赋值运算符 “=”,是一个运算,将后面的结果赋给前面的变量或常量
  • 前面 = 后面;后面的值赋给前面
  • 前面必须是个变量【不能是具体是数值(2,3,’A‘,“123”)】
  • 后面可以是具体的数值,也可以是变量,也可以是常量

算术运算符


+、- 加减法

*、/ 乘除法

a / b 运算之后得到一个结果

被除数 ÷ 除数 = 商

除法有一个禁忌:除数不能为0

% 取余(做除法取余数)

5 % 3 : 5除以3,得到的余数,是结果

上面的+、-、*、/、%都是二元运算符

++运算符和–运算符

举例:a++; 等价于 a = a+1;

++、- -是一元运算符

//int showYouAge = age++;//结果是18//意味着 age++ 得到的结果是 age//解析://第一步:将age的值赋给showYouAge//第二步:age自增intshowYouAge=++age;
//意味着 ++age 得到的结果是 age+1//解析://第一步:age自增//第二步:将age的值赋给showYouAge//总结://age++;++age;//++符号在前就先自增,后赋值//++符号在后就先赋值,后自增

练习题:

3.png

⌨符合运算符


  • a+=b;等价于a=a+b;
  • a=a+4; ==> a+=4;
  • a-=b;等价于a=a-b;
  • a*=b;等价于a=a*b;
  • a/=b;等价于a=a/b;
  • a%=b;等价于a=a%b;

⌨输入与输出


输出

Console.WriteLine();

输出内容,并换行

Console.Write();

输出内容,不换行

输入

Console.Read();

从屏幕读取一个字符,并返回该字符所对应的整型数字

Console.ReadLine();

从屏幕读取一串字符,并返回该字符串

字符串是一个数据类型

关键词string

表示一串字符

用双引号括起来

字符串相加可以得到两个字符串组合到一起的字符串

📚预编译执行 region

作用:代码分成一个区域,方便折叠和展开

区域首部:#region

区域尾部:#endregion

eg:

image.png

⌨类型转换


  • 隐式转换
  • 将占用字节小的、取值范围小的、精度小的,转换为占用字节大的、取值范围大的、精度高
  • 不需要任何的修饰符,会自动转换
//整型//1     2     4   8//sbyte short int longsbyteenglishScore=100;
//sbyte --> intintmyScore=englishScore;
//int --> longlongclassScore=myScore;
//int --> floatfloatnewScore=myScore;
//float --> doubledoublenewClassScore=newScore;
  • 显式转换(强制转换)
  • 将占用字节大的、取值范围大的、精度高,转换为占用字节小的、取值范围小的、精度小的
  • 需要强制转修饰符,会有精度的缺失,甚至数据的错误
  • 转换情况:知道这个数字,在小的数据类型的取值范围内
//强制转换intdamage=10000;
//int --> sbytesbytehealth= (sbyte)damage;
//输出结果Console.WriteLine(health); //16floatmathScore=90.5f;
//float --> intintmyAllScore= (int)mathScore;
//会把小数点后面的内容全部舍去Console.WriteLine(myAllScore); //90
  • int和char之间的类型转换
//int 和 char之间的类型转换intnum=11101;
//int --> charcharletter= (char)num;
//a-97Console.WriteLine(letter);

4.png

评论区请教大神!!!

image.png

int和bool之间的类型转换

不能进行转换

string与其他类型之间的转换

举例:

“false”,“true”“10”,“3.14“A”

转换方法

System.ConvertSystem.Convert.ToBoolean()
System.Convert.ToInt32()
System.Convert.ToSingle()
System.Convert.ToDouble()
System.Convert.ToChar()

数据类型.Parse()

int.Parse()
bool.Parse()
float.Parse()
char.Parse()

其他类型能不能转换成字符串

其他类型的变量.ToString();

⌨关系运算符 & 逻辑运算符


关系运算符:>,<,>=,<=,==,!=

逻辑运算符:逻辑运算是bool与bool之间的运算

&:与运算

true&true : truetrue&false : falsefalse&false : false

总结:一假则假

|:或运算

true|true : truetrue|false : truefalse|false : false

总结:一真则真

!:非运算

!true : false!false : true

&&:短路与运算

普通的&与运算,无论第一个条件是真是假,都会继续判断第二条件

短路与运算&&,如果判断第一个条件已经是假,则不会继续判断第二个条件

||:短路或运算

普通的|与运算,无论第一个条件是真是假,都会继续判断第二条件

短路或运算||,如果判断第一个条件已经是真,则不会继续判断第二个条件

短路&&、||

优点:第一个条件已经得知整个逻辑运算的结果,就不会去判断第二个条件了

节约了运算量

缺点:如果判断中带有运算,如果不进行第二个条件的判断,那第二个条件中的运算也不能执行

练习:👍👍👍👍👍👍


手动计算下列表达式的值和number的值,并编写程序来验证结果是否正确

①number初值为6:number++ * ++number - number-- / --number

②number初值为5:number++ > 3 | --number == 0

③number初值为2:number-- > 2 && --number == 0

④number初值为12:number++ > 10 && --number != 2 && number-- == 0 && ++number != 3

⑤number初值为0:number++ > -1 || --number <= 2 && number-- != 10

⑥number初值为0:number++ < -1 || (–number >= 2 && number-- != 10)【小括号优先级最高】


相关文章
|
7月前
|
存储 编译器 数据处理
C#基础入门之数据类型
C#基础入门之数据类型
|
2月前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
72 7
|
2月前
|
C#
C#入门
C#入门
28 0
|
25天前
|
程序员 C# 图形学
全面的C#/.NET自学入门指南
全面的C#/.NET自学入门指南
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
66 8
|
3月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
3月前
|
安全 数据库连接 API
C#一分钟浅谈:多线程编程入门
在现代软件开发中,多线程编程对于提升程序响应性和执行效率至关重要。本文从基础概念入手,详细探讨了C#中的多线程技术,包括线程创建、管理及常见问题的解决策略,如线程安全、死锁和资源泄露等,并通过具体示例帮助读者理解和应用这些技巧,适合初学者快速掌握C#多线程编程。
84 0
|
3月前
|
开发框架 .NET Java
C#/.NET/.NET Core自学入门指南
C#/.NET/.NET Core自学入门指南
|
4月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
92 0
|
4月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
380 0