学习了C基础后,开始学习.NET Core框架
前言
谈到.NET Core 就不得不提到 .NET Framework,.NET Framework是2002年由微软推出的开发平台,时至今日,已经成为了在微软平台上进行软件开发的主要开发平台,有这非常广泛的应用。
但随着新时代的到来,新的需求例如云服务平台,微服务等的出现,它已经不是很适合我们的开发需求,于是微软在2016年推出了适应新时代的开发平台,命名为.NET Core
在学习.NET Core之前,先学习C#的新语法
一、顶级语句
在以前版本的C#语法中,即使只编写一行输出Hello world
的C#代码,也需要创建一个C#类,并且需要为这个C#类去添加Main方法,才能在Main方法中编写代码。从C#9.0开始C#增加了 顶级语句 语法,它使得可以直接在C#文件编写入口代码,不再需要声明类和方法。
Console.WriteLine("Hello, World!");
但是在反编译后,会发现编译器自动生成一个Program类,现在看来主要是用编译器来帮助我们简化一下工作
[CompileerGenerated]
internal class Program
{
private static void <Main>$(string[] args)
{
Console.WriteLine("Hello,World!");
}
}
二、全局using指令
我们在编写项目代码时,经常需要引用非常多的.NET官方以及第三方的类库,而这些类库通常位于不同的命名空间下,这样就需要在每个C#文件头部,编写重复的using语句来引入这些命名空间,非常繁琐。
C#10.0中增加了全局using指令语法,我们可以将global修饰符添加到任何using关键字前,这样通过using语句引入的命名空间就可以应用到这个项目的所有源代码中了,这样做,同一个项目的C#代码就不需要重复引入这个命名空间了
global using Microsoft.Data.Sqlite;
global using System.Text.Json;
正常来说,我们会单独创建一个文件来存储我们需要引入的命名空间
1,using声明的简化
using(var conn = new SqlConnection(connStr))
{
conn.Open();
using(var cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from T_Articles";
using(SqlDataReader reader = cmd.ExecuteReader())
{
while(reader.Read()){}
}
}
}
上面的代码是使用using关键字进行非托管资源的释放的代码,可以看到存在多层using作用域的嵌套,因此代码结构比较复杂。在C#8.0及之后的版本之中,可以使用简化的using声明语法来避免这一情况的发生
using var conn = new SqlConnection(connStr);
conn.Open();
using var cmd = conn.CreateCommand();
cmd.CommandText = "select * from T_Artices";
using var reader = cmd.ExcuteReader();
while (reader.Read()){}