C#入门教学(简化版)

简介: 本文为C#入门知识,是在有一定C语言或C++基础上进行的总结,因此会省略许多C语言的基础知识,但是对一些C#特有或者是C语言中比较少见或重要的知识也会归纳到博文里。

前言

本文为C#入门知识,是在有一定C语言或C++基础上进行的总结,因此会省略许多C语言的基础知识,但是对一些C#特有或者是C语言中比较少见或重要的知识也会归纳到博文里。


一、输入输出

Console.WriteLine()打印一行信息,自动换行

Console.Write()打印信息完成后不会自动换行

Console.ReadLine()用户输入,点击回车结束

Console.ReadKey()用户按键盘任意一下就会结束

二、变量

1.折叠代码

作用:将中间包裹的代码折叠起来 避免代码凌乱 编辑时起作用

#region MyRegion...#endregion

2.声明变量

公式:变量类型 变量名 = 初始值;


变量类型有14种:


a.有符号的整型变量

能存储正负数和0 下面给出大概范围(赋值时超出范围会报错)


sbyte -128~-127

int  -21亿~21亿

short -32768~32767

long -9百万兆~9百万兆

示例代码


sbyte a = 1;Console.WriteLine("存储的数:"+a); //输出之间的连接用+


b.无符号的整型变量

能存储一定范围0和正数


byte 0~255

uint 0~42亿

ushort 0~65535

ulong 0~18百万兆

c.浮点数

float 存储7或8位有效数字,具体取决于编译器 四舍五入 从左到右非0数开始算有效数字

double 存储15~17位有效数字 C#中声明小数默认double类型

decimal 存储27~28位

float f = 0.1234f; //后面要加f 大小写均可double d = 0.12456434;decimal de = 0.124543534234t254m; //后面要加m 大小写均可


d.特殊类型

bool 变量值为true或false 表示真假数据类型

char 存储单个字符 单引号括住要赋的值

string 存储字符串 双引号括住要赋的值

string s1="hello", s2="world", s3="good"; //多个变量同时声明


三、常量

常量的声明 (特点:必须初始化、不能被修改)


const 变量类型 变量名 = 初始值;


const int i = 10;

四、转义字符

公式:\字符


常用转义字符如下表


image.png

五、类型转换

1.隐式转换

规则:(不同类型之间自动转换)大范围转小范围


a.同类型之间转换

long a = 1;
int  b = 2;
a = b;//int隐式转换为long
b = a;//这句是不对的!小范围不能转大范围

对于浮点数之间,要注意decimal类型无法用隐式转换去存储double和float,但float可以转换成double。特殊类型bool、char和string之间不存在隐式转换


b.不同大类型之间的转换

!有符号的变量不能隐式转换成无符号的变量


错误代码示例:


ushort us2 = 1;
sbyte sb2 = 1;
us2 = sb2;//错误代码!不能转换

us2 = sb2;//错误代码!不能转换

!无符号的变量可以转有符号的变量,但前提是有符号的变量覆盖的范围要包括无符号的类型


int i2 = 1;
uint ui2 = 1;
byte b2 = 1;
i2 = ui2;// 错误!无法覆盖无符号数的全部范围
i2 = b2;// 正确代码

浮点数可以装载任何类型的整数,不管是无符号还是有符号 (decimal不能隐式存储float和double 但可以隐式存储整型)

整数不能隐式存储浮点数

bool类型没有办法和其他类型相互隐式转换

char没法隐式存储其它类型的变量 但char类型可以转为int类型,int类型又可以隐式转换为其他类型

2.显式转换

需要手动处理 强制转换


公式:变量类型 变量名 = (变量类型)变量


a.括号强转

(1)相同大类之间(无符号整型、有符号整型、浮点数) 括号强转可能出现范围问题造成异常

short s = 1;
int i = 1;
s = (short)i;

(2)不同类型之间


有符号和无符号之间同样可以强转 但可能出现范围问题

浮点数转成整数主要是精度问题

bool、string不支持强转

b.Parse法强转 把字符串类型转换为对应的类型

变量类型.Parse("字符串") 字符串必须能够转换成对应的类型,不然会报错


int i4 = int.Parse("123");
float f3 = float.Parse("1.232");
bool b = bool.Parse("true");
int i4 = int.Parse("123.45");//错误语句,会报错!
short s4 = short.parse("300000");//错误语句,超出范围,会报错!

会报错!

c.Convert法

更准确的各类型之间相互转换


Convert.To目标类型(变量或常量) 把字符串转对应类型要合法合规

int a = Convert.ToInt32("12");
int a = Convert.ToInt32(12.2f);//正确语句 且Convert精度更高,可以四舍五入
int a = Convert.ToInt32(ture);//正确语句 true转为1,false转为0
int a = Convert.ToInt32('a');//正确语句 char转为对应ASCII码
int a = Convert.ToInt32("12.2");//错误,不合法转换

Convert其他方法ToSByte()、ToInt16()、ToInt64()  //16代表short,32代表int,64代表long

同理如果是无符号类型ToByte()、ToUInt16/32/64()

浮点数:ToSingle()、ToDouble()、ToDecimal()

特殊类型:ToBoolean()、ToChar()、ToString()

d.其他类型转string

作用是拼接打印


变量.ToString(); //任何类型都可以用


string str = 1.ToString();
Console.WriteLine("123"+1+true);//这句话是正确的,后面两个会默认调用ToString方法

两个会默认调用ToString方法

六、异常捕获


通过异常捕获,避免代码报错时程序卡死


基本语法:


try
{//希望进行异常捕获的代码块//如果出错执行catch中的 
}
catch
{//catch(Excepetion e) 具体报错跟踪 通过e得到具体错误信息
}
//可选部分
finally
{//不管有没有错都会执行
}

七、算术运算符

与C语言无区别


八、字符串拼接

1.string可以通过+来进行字符串拼接

string str = "123";
str = str + "456";//正确
str = str + 1;//正确,默认调用1.ToString();
str += "1" + 4 + true;//正确,复合运算和ToString()都起作用

2.字符串拼接方式2

string.Format("待拼接内容",内容1,内容2);


想要被拼接的内容用占位符替代{数字}:0~n 依次往后


string str2;
str2 = string.Format("我是{0},我今年{1}岁,我想要{2}","Daniel",18,"study");

aniel",18,"study");

3.控制台打印拼接

后面的内容比占位符多不会报错,比占位符少则会报错


Console.WriteLine("A{0},B{1},C{2}",1,ture,false);

九、条件运算符

符号与C语言相同


1.不同数值类型之间

规则:可以随意进行条件运算符比较


int i = 5;
float f = 1.2f
short s = 2;
byte by = 20;
uint ui = 222;// 以下语句都成立 只要是数值都可以进行比较
result = i > f;
result = f < d;
result = f > by;

2.特殊类型char string bool

规则:只能同类型之间进行==和!=的比较


由于char是特殊的整型,因此它既可以和自己同类型比较 还可以和数值类型进行比较 还可以和字符类型进行大小比较

char c = 'a';
result = c > 123;
result = c > 'B';

十、逻辑运算符

逻辑与:&&    逻辑或:||      逻辑非:!


符号和规则与C语言中相同


1.注意

逻辑运算符当中逻辑非(!)的优先级最高   逻辑与(&&)优先级高于逻辑或(||)


逻辑运算符优先级要低于条件运算符和算术运算符


2.逻辑运算符短路规则

只要逻辑与或者逻辑或左边满足了条件 右边就不需要再执行


比如逻辑与是有假则假,左边表达式为假,右边便不需要再执行


十一、位运算符

规则:连接两个数值进行位计算 将数值转为2进制


1.位与运算 &

规则:有0则0


int a = 1; // 002
int b = 5; // 101
int c = a & b;
// 001 & 101 =  001 所以c也就是1

2.位或运算 |

有1则1


1|0=1


3.异或运算 ^

规则:相同为0 不同为1


1 ^ 1 = 1

0 ^ 0 = 1

4.位取反 ~ (了解即可)

写在数值前面 将数值转为2进制


0变1 1变0 涉及补码


5.左移<< 和右移>> (了解即可)

让一个数的2进制进行左移和右移


左移几位 右侧加几个0


右移几位 右侧去掉几个数


十二、三目运算符

原理等同C语言


十三、 if语句

原理等同C语言


十四、switch语句

原理等同C语言


十五、while语句

原理等同C语言


十六、do while语句

原理等同C语言


十七、for循环

原理等同C语言


相关文章
|
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 的开发技巧。
82 7
|
2月前
|
C#
C#入门
C#入门
28 0
|
1月前
|
程序员 C# 图形学
全面的C#/.NET自学入门指南
全面的C#/.NET自学入门指南
|
2月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
73 8
|
3月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
3月前
|
安全 数据库连接 API
C#一分钟浅谈:多线程编程入门
在现代软件开发中,多线程编程对于提升程序响应性和执行效率至关重要。本文从基础概念入手,详细探讨了C#中的多线程技术,包括线程创建、管理及常见问题的解决策略,如线程安全、死锁和资源泄露等,并通过具体示例帮助读者理解和应用这些技巧,适合初学者快速掌握C#多线程编程。
88 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 脚本编程基础,提升游戏开发效率。
111 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 或官网下载工具包。
444 0