随笔分类 - C#.Net
摘要:.NET Core提供了一些基本的具体集合类,这些类实现了一系列集合接口。和集合接口一样,每一种集合类型都可以选择使用泛型或非泛型进行实现。在灵活性和性能方面,泛型类更具有优势,而它们的非泛型冗余版本则是为了向后兼容。这与集合接口不同,非泛型集合接口在某些情形下是有其作用的。而泛型List类是最常用
阅读全文
摘要:Array类是所有一维和多维数组的隐式基类,它是实现标准集合接口的最基本类型之一。Array类提供了类型统一性,所以所有的数组对象都能够访问同一套公共方法,而与它们的声明或实际的元素类型无关。 当使用C#语法声明数组时,CLR会将其隐式转换为Array类的子类,合成一个对应该数组维度和元素类型的伪类
阅读全文
摘要:虽然枚举接口IEnumerable提供了一种向前迭代集合的协议,但是它们并没有提供确定集合大小、根据索引访问成员、搜索以及修改集合的机制。为了实现这些功能,.NET Core定义了ICollection、IList和IDictionary接口。这些接口都支持泛型和非泛型版本。然而,非泛型版本的存在只
阅读全文
摘要:快速认识ORM 对象-关系映射,即Object/Relation Mapping,主要实现程序对象到关系数据库的映射。现在.Net比较流行的ORM框架有:EF、SqlSugar、Dapper、FreeSql、Nhibernate、IBatis.Net等。 O/RM只是一层代码的封装,底层还是基于AD
阅读全文
摘要:安装Nuget包:ServiceStack.Redis 连接数据库 using (RedisClient client = new RedisClient("127.0.0.1", 6379)) { //删除当前数据库中的所有Key 默认删除的是db0 client.FlushDb(); //删除所
阅读全文
摘要:为了避免运行时编译cshtml造成的性能问题,ASP.NET Core MVC项目在发布的时候默认会把cshtml文件编译到dll中,但是有的项目希望能在运行时修改cshtml视图文件。网上有文章讲到过在csproj文件中添加 <MvcRazorCompileOnPublish>false</Mvc
阅读全文
摘要:IEnumerable 和 IEnumerator IEnumerator接口定义了以向前方式遍历集合的基本底层协议。 声明如下: public interface IEnumerator { bool MoveNext(); object Current { get; } void Reset()
阅读全文
摘要:C#的CLR(即 common language runtime,公共语言运行库)包含两种任务组合器:Task.WhenAny和Task.WhenAll。 我们先定义如下方法: async Task<int> Delay1() { await Task.Delay(1000); return 1;
阅读全文
摘要:在C#8之前,可以使用yield return实现迭代器,也可以用await书写异步函数。但无法两者结合,实现一个可以等待的迭代器。C#8引入了异步流解决了这个问题。 异步流基于以下两个接口。 public interface IAsyncEnumerable<out T> { IAsyncEnum
阅读全文
摘要:要编写异步函数,可将返回类型void改为Task。这样方法本身就能进行异步调用,并且是可等待的。 async Task PrintAnswerToLife() { await Task.Delay (5000); int answer = 21 * 2; Console.WriteLine (ans
阅读全文
摘要:await关键字可以简便地附加延续。 static void Main(string[] args) { DisplayPrimesCount(); } static async void DisplayPrimesCount() { int result = await GetPrimesCoun
阅读全文
摘要:应用程序对HTTP请求的处理过程进行划分,每个环节称为中间件,将各个中间件串联起来,就形成了HTTP管道。 执行中间件的顺序与它们添加到管道的顺序相同,先添加的中间件会先执行。 添加方法有三种: (1)委托:中间件专用委托类型为RequestDelegate,对应的方法结构就是带HttpContex
阅读全文
摘要:枚举出程序中已添加的服务 Asp.Net Core 项目中的“服务”,指的是用于扩展应用程序功能的一系列类型。 在程序初始化期间,会把需要的服务类型实例添加到ServiceCollection集合中,这些服务实例将通过依赖注入提供给其他代码使用。 下面遍历一下已添加的服务: public stati
阅读全文
摘要:Web主机配置 使用默认配置创建Web主机 静态类WebHost,公开了一系列简便方法,可使用默认配置参数创建Web主机。用的较多的是CreateDefaultBuilder方法,默认配置创建WebHostBuilder实例。 默认配置包括: (1)使用内置Kestrel服务器组件,能够使Web应用
阅读全文
摘要:问题:使用SqlSugar批量更新时报错“SqlSugar.SqlSugarException: You cannot have no primary key and no conditions”; 主键或条件不存在 Db.Updateable<User>(users).ExecuteCommand
阅读全文
摘要:特性 自定义特性类 特性是一种比较特殊的类,作为代码对象附加部分用于向运行时提供一些补充信息。 主要有三个特征: 从Attribute类派生 名称一般以Attribute结尾 声明特性类时必须在类上加AttributeUsage,用于标注当前声明的类应用于哪些对象 [AttributeUsage(A
阅读全文
摘要:阻止类被继承 有时候需要禁止某个类被继承,使其成为密封类。只需使用sealed关键字申明即可。 sealed class Pear { } // 错误,Pear 类无法被继承 //class WildPear : Pear //{ //}
阅读全文
摘要:Validation failed for one or more entities.See 'EntityValidationErrors' property for more details.验证异常消息是:The field AUDIT_CONTENT must be a string or
阅读全文
摘要:输出百分比 百分比的格式控制符为"P"或"p"将普通数值输出为百分比形式。在控制符后跟一个整数表示要保留的小数位。如:"P3"表示保留3位小数。 float val = 0.1785f; string a = $"{val:p}"; //17.85% string b = $"{val:p3}";
阅读全文
摘要:克隆对象 /// <summary> /// 对象Clone /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static
阅读全文

浙公网安备 33010602011771号