1、泛型约束文档(来源于网络)where T : struct类型参数必须是不可为 null 的值类型。 有关可为 null 的值类型的信息,请参阅可为 null 的值类型。 由于所有值类型都具有可访问的无参数构造函数,因此 struct 约束表示 new() 约束,并且不能与 new() 约束结合使用。 struct 约束也不能与 unmanaged 约束结合使用。where T : class类型参数必须是引用类型。 此约束还应用于任何类、接口、委托或数组类型。 在 C#8.0 或更高版本中的可为 null 上下文中,T 必须是不可为 null 的引用类型。where T : class?类型参数必须是可为 null 或不可为 null 的引用类型。 此约束还应用于任何类、接口、委托或数组类型。where T : notnull类型参数必须是不可为 null 的类型。 参数可以是 C# 8.0 或更高版本中的不可为 null 的引用类型,也可以是不可为 null 的值类型。where T : default重写方法或提供显式接口实现时,如果需要指定不受约束的类型参数,此约束可解决歧
引入命名空间(Using NameSpace)静态引入命名空间(Using Static)全局引入命名空间(Global Usings)隐式引入命名空间(Immlicit Usings)Using操作可释放资源(Using IDisposable)Using NameSpace🚀:对命名空间的引用using System; using System.Collections.Generic; using System.Linq; Console.WriteLine("Hello,Mindev!"); var list = new List<int>(); var Sum = list.Sum();Using Static1、通常方式(常用)using System.Math; Math.Cos(10); Math.Round(0.6); Math.Pow(4,2);2、静态使用(不常用)🚀:因为会将类中所有静态方法全部暴露出来using static System.Math; Cos(10); Pow(2,5);Global Usings🚀:全局使用命
1、中间件概述(类似拦截器)用于组成应用程序管道来处理请求和响应的组件。请求委托用于生成请求管道,处理每个HTTP请求。每个中间件组件:选择是否将请求传递到管道中的下一个组件。在管道中的下一个组件前后执行工作。请求管道短路:每个委托在下一个委托之前和之后都有机会执行操作。任何委托都能选择停止传递到下一个委托。默认中间件:错误处理静态文件服务器身份验证MVC2、配置HTTP请求管道四种方法:Run()、Use()、Map()、MapWhen()2.1、Run()Run()方法会短路通道,因为它不会调用next请求委托。(所以Run()方法一般都是放在最后)app.run(async context => await context.response.writeasync("hello 1!"); 子); app.run(async context => await context.response.writeasync("hello 2!"); 子);2.2、Use()上述Run()方法等同于不使用next的Use()方法:app.
mindev
格物致知,知行合一