
C#
文章平均质量分 75
XieYZSND
这个作者很懒,什么都没留下…
展开
-
ASP.NET Core 基础组件
上例虽然遵循了"依赖倒置原则",但是违背"开放封闭原则",因为如果有一天想修改 md 为 YourDependency 类的实例,则需要修改 Test 类.因此,我们需要反转这种创建对象的过程.上层不应该依赖下层,Test 类不应该依赖 MyDependency 类,因为如果 MyDependency 类变化了,就是把这种变化所造成的影响传递到上层 Test 类.控制反转是一种思想,所谓"控制反转",就是反转获得依赖对象的过程.或许,叫"反转控制"更容易理解.使用者就是上层,上例中,Test 类就是上层.原创 2023-01-20 22:55:52 · 154 阅读 · 0 评论 -
简单了解委托
在c和c++中,只能提取函数的地址,并作为一个参数传递它。c没有类型安全。可以把任何函数传递给需要函数指针的方法。但是这种直接方法不仅会导致一些关于类型安全的问题,而且没有意识到:在进行面向对象编程时,几乎没有方法是孤立存在的,而是在调用方法之前通常需要与类实例相关联。所以在.NET在语法上不允许使用这种直接方法。如果要传递方法,就必须把方法的细节封装在一种新类型的对象中,即委托。委托只是一种特殊类型的对象,起特殊之处在于,我们之前定义的所有对象都包含数据,而委托包含的只是一个或多个方法。原创 2023-01-19 21:46:31 · 164 阅读 · 0 评论 -
.net7新功能
NET 7 为C# 11/F# 7、.NET MAUI、Core/Blazor、Web API、WinForms、WPF 等应用程序带来了更高的性能和新功能。使用 .NET 7,您还可以轻松地将 .NET 7 项目容器化,在 GitHub 操作中设置 CI/CD 工作流,并实现云原生可观察性。原创 2023-01-18 22:17:44 · 409 阅读 · 0 评论 -
Linq分组
linq的语法通过System.Linq下面的Enumerable类提供支持,也就是说,只要是实现了IEnumerable的对象都可以使用Linq的语法来查询。LINQ定义了大约40个查询操作符,如select、from、in、where、group by 以及order by,通过查看源代码,实际上linq为IEnumerable实现了一系列的扩展方法。:这里将查询结果 命名为g,一旦重新命名,T 的作用域就结束了,所以,最后select时,只能select g。原创 2023-01-17 21:25:16 · 959 阅读 · 0 评论 -
Entity Framework Core 基础
上面的命令就会为SQL.Senverfdemol 数据库中的所有表生成实体类及上下文为,用所示的就是反向工程工具所生成的项目文件。反向工程可以大大减少开发的工作量,但是由于所有的代码都是根据数据库生成的,因生成的实体类也许并不能满足项目的要求。以上面生成的实体类为例,所有的数据库表名为“T_实体类名称的复数形式”,而反向工程则是根据EF Core默认的规则生成“TCat”这样的类名,而不是“Cat”这样的类名。原创 2023-01-16 20:32:10 · 176 阅读 · 0 评论 -
数据库迁移
通过使用Add-Migration和Update-database两个命令,我们对于EF Core的数据库迁移有了基本的了解,本节将深入介绍数据库迁移的更多用法。一、 数据库迁移原理数据库迁移的使用看似很简单,但是内部实现非常复杂,只有了解它的内部实现原理,我们才能更好地使用它。我们查看一下之前演示项目的数据库迁移代码结构,如图4-14所示。数据库迁移代码结构Migrations文件夹下的内容都是数据库迁移生成的代码,这些代码记录了对数据库的修改操作 ,每一个文件代表一次对数据库的修改操作;原创 2023-01-13 20:51:34 · 1153 阅读 · 0 评论 -
C#新语法续
Name、PhoneNumber两个属性都是 str类型,因此它们都是“不可为空的string类型”,但是Student类的构造方法中只为Name赋值了,这样就存在PhoncNumber属性没有被赋值,从而导致其属性值为空的可能性,因编译器给出了这样的警告信息。C#8.0中提供了“可为空的引用类型”语法,可以在引用类型后添加“?在之前版本的C#中,类型必须定义在命名空间中,而从C#10.0开始,C#允许编写独立namespace代码行声明命名空间,文件中所有的类型都是这个命名空间下的成员。原创 2023-01-12 19:33:03 · 281 阅读 · 0 评论 -
C#新语法
在C#8及之后的版本中,可以使用简化的“using声明”语法来避免代码的嵌套,如代码2-6所示在声明变量的时候,如果类型实现了 IDisposable 或IAsyncDisposable 接口,那么可以在变声明前加上using关键字,这样当代码执行离开被using修饰的变量作用域的时候,变量指的对象的Dispose方法就会被调用。我们知道,C#中可以用using关键字来简化非托管资源的释放,当变量离开using 作用范围后,会自动调用对象的Dispose方法,从而完成非托管资源的释放。原创 2023-01-11 20:16:10 · 261 阅读 · 0 评论 -
C# XML标记语言
XML:可扩展的标记语言,它用于存储数据。(3)XML文档只能有一个根节点。(1)XML是严格区分大小写的;(2)XML标签都是成对出现的;原创 2023-01-10 20:38:06 · 273 阅读 · 0 评论 -
异步编程 ASYNC AWAIT原理
只有当方法处于活动状态时,该方法将在当前同步上下文中运行并使用线程上的时间。可以使用 Task.Run 将占用大量 CPU 的工作移到后台线程,但是后台线程不会帮助正在等待结果的进程变为可用状态。运算符通知编译器异步方法:在等待的异步过程完成后才能继续通过该点。同时,控制返回至异步方法的调用方。相反,表达式在继续时注册方法的其余部分并将控件返回到异步方法的调用方。如果同样的功能,既有同步方法,又有异步方法,那么首先使用。2)标记的异步方法本身可以通过调用它的方法等待。等方法,以及同步方法。原创 2022-12-23 22:14:50 · 214 阅读 · 0 评论 -
异步编程1
启动程序时,系统会在内存中创建一个新的进程。进程是构成运行程序的资源的集合。这些资源包括虚地址空间、文件句柄和许多其他程序运行所需的东西。在进程内部,系统创建了一个称为线程的内核(kernel)对象,它代表了真正执行的程序。(线程是“执行线程”的简称。)一旦进程建立,系统会在Nain方法的第一行语句处就开始线程的执行C#关键字:async、await、async、await不等于多线程。原创 2022-12-21 22:29:32 · 152 阅读 · 0 评论 -
C#基础
类是一个能储存数据并执行代码的数据结构,它包含数据成员和函数成员。原创 2022-12-17 00:32:55 · 89 阅读 · 0 评论 -
C#基础
C#基本语法一.注释作用①对所写的代码进行解释说明,增强可读性,方便自己和他人②调试所写的代码,可以用于检查错误。原创 2022-12-16 01:55:53 · 515 阅读 · 0 评论 -
C# 基础
一.C#介绍源于c语言,减少了c中烦人的指针。原创 2022-12-15 02:24:23 · 132 阅读 · 0 评论