C#经验
-
FirstOrDefaultAsync()、SingleOrDefaultAsync()、FindAsync()方法的区别
FirstOrDefaultAsync()、SingleOrDefaultAsync()、FindAsync()方法的共同点是都是读取单个实体。 它们的不同点如下: FirstOrDefaultAsync() 以异步方式返回序列中满足指定条件的第一个元素。 如果未找到此类元素,则返回默认值null。 如果有多个元素满足…
-
Visual Studio更正代码缩进错误的快捷方式
如果代码缩进在粘贴代码后出现错误,请按 CTRL+K+D 进行更正。 注意:仅可使用在.cshtml视图文件。
-
C#语言的顶级(Top-level)语句
1.顶级语句原理 从 C# 9 开始,无需在应用程序项目中显式包含 Main 方法。 顶级语句的原理是把Program类中Main方法内的内容抽取出来放到文件的顶层,是一种隐式的入口点方式,顶级语句隐式位于全局命名空间中。具体顺序见下面: 一般情况下,一个项目只能有一个包含Main方法入口点的文件,因此一个项目也只能有…
-
Context.Database.EnsureCreated()与迁移(Migrations)的区别
情形一 如果找不到数据库,则会自动创建一个数据库并使用测试数据加载。 如果找到数据库,但没有一张表存在,则会自动创建表并使用测试数据加载。 如果找到数据库,表存在但没有数据,则会使用测试数据加载。 情形二 如果找到数据库,具有任何一张表且表中有数据,则不执行任何操作。 情形三 当数据模型(比如添加字段)发生更改时,自然…
-
表达式树(Expression Tree)详解
让我们来举一个简单的示例。 以下是一个代码行: 直观地看,整个语句是一棵树:应从根节点开始,浏览到树中的每个节点,以查看构成该语句的代码: 具有赋值 (var sum = 1 + 2;) 的变量声明语句 隐式变量类型声明 (var sum) 隐式 var 关键字 (var) 变量名称声明 (sum) 赋值运算符 (=)…
-
C#语言Main()函数的四种返回类型
无返回值 有返回值
-
托管(Managed)代码、非托管(Unmanaged)代码、不安全(Unsafe)代码的区别
托管(Managed)代码:在公共语言运行时 (CLR) 控制下运行的代码。 非托管(Unmanaged)代码:不在公共语言运行时 (CLR)控制下运行的代码。 例如,COM、COM+、C++ 组件、ActiveX 组件和 Microsoft Windows API 都是非托管代码。 不安全(Unsafe)代码:不安全…
-
ODBC、DAO、RDO、OLE DB、ADO、ADO.NET的区别
ODBC(Open Database Connectivity,开放数据库互连) ODBC 接口是一个 C 编程语言接口,应用程序可以通过单个接口访问不同 数据库管理系统(DBMS) 中的数据。ODBC 是专为关系数据存储设计的低级别高性能接口。ODBC的设计者们努力使它具有最大的独立性和开放性:与具体的编程语言无关,…
-
packages.config、project.json、PackageReference的区别
packages.config、project.json、PackageReference都是 维护项目中使用的包列表。 packages.config NuGet 1.0+开始加入的功能。 project.json NuGet 3.x+开始加入的功能,旨在取代 packages.config,但在 NuGe…
-
C#语言的GetType()方法
使用方法 GetType()(被 Object 基类的所有子类型继承)以获取变量类型: