摘要:
FluentValidation第三方验证框架 引用包 FluentValidation FluentValidation.AspNetCore Core配置: services.AddMvc() .AddFluentValidation(fv => //配置第三方输入验证 fv.RegisterV 阅读全文
posted @ 2020-05-29 15:20
delafqm
阅读(549)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.NET 3.x 新增特性 ] 2.1 初识LINQ:类似SQL风格的代码 LINQ又称语言集成查询,它是C# 3.0的新语法。在更多的人看来,它是一种方便的查询表达式,或者说是和SQL风格接近的代码。 var maleList = from p in personList whe 阅读全文
posted @ 2020-05-29 11:53
delafqm
阅读(109)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.NET 3.x 新增特性 ] 标准查询运算符提供了包括筛选、投影、聚合、排序等功能在内的查询功能,其本质是定义在System.Linq.Enumerable类中的50多个为IEnumerable<T>准备的扩展方法。 从上图可以看出,在Enumerable类中提供了很多的扩展方法 阅读全文
posted @ 2020-05-29 11:50
delafqm
阅读(395)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.NET 3.x 新增特性 ] 回顾,发现上面的代码,需要传一个 匿名方法 ,写起来特别别扭。于是我们很想知道能否有简化的语法呢?微软告诉咱们:Of Course,必须有,它就是Lambda表达式。Lambda表达式是比匿名方法更简洁的一种匿名方法语法。 Lambda来源:1920 阅读全文
posted @ 2020-05-29 11:46
delafqm
阅读(164)
评论(0)
推荐(0)
摘要:
MSDN给出的定义:表示比较同一类型的两个对象的方法。 它的定义也很简单: public delegate int Comparison<in T>(T x, T y) T是要比较的对象的类型,而返回值是一个有符号整数,指示 x 与 y 的相对值,如下表所示: 值 含义 小于 0 x 小于 y。 0 阅读全文
posted @ 2020-05-29 11:45
delafqm
阅读(1150)
评论(0)
推荐(0)
摘要:
3.1 初识Predicate 经过了Func的了解,我们可以知道接下来的这两个Predicate和Comparison其实都属于有返回值类型的委托,他们不过是两个具体的特殊实例而已(一个返回bool类型,一个返回int类型)。 MSDN给出的定义:表示定义一组条件并确定指定对象是否符合这些条件的方 阅读全文
posted @ 2020-05-29 11:43
delafqm
阅读(931)
评论(0)
推荐(0)
摘要:
2.1 初识Func MSDN给出的定义:封装一个具有一个参数并返回 TResult 参数指定的类型值的方法。 此委托的定义如下: public delegate TResult Func<in T, out TResult>(T arg) (1)in T :此委托封装的方法的参数类型。 (2)ou 阅读全文
posted @ 2020-05-29 11:41
delafqm
阅读(4279)
评论(0)
推荐(0)
摘要:
1.1 初识Action MSDN给出的定义:封装一个方法,该方法不具有参数并且不返回值。 可以使用此委托以参数形式传递方法,而不用显式声明自定义的委托。封装的方法必须与此委托定义的方法签名相对应。也就是说,封装的方法不得具有参数,并且不得返回值。(在 C# 中,该方法必须返回 void)通常,这种 阅读全文
posted @ 2020-05-29 11:37
delafqm
阅读(1172)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.NET 3.x 新增特性 ] 3.1 神奇—初玩扩展方法 (1)提到扩展方法,我想大部分的园友都不陌生了。不过还是来看看MSDN的定义: MSDN 说:扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。这里的“添加”之所以使用引号, 阅读全文
posted @ 2020-05-29 11:35
delafqm
阅读(177)
评论(0)
推荐(0)
摘要:
[ C# 2.0/.NET 2.0 新增特性 ] 2.1 从委托的声明说起 C#中的匿名方法是在C#2.0引入的,它终结了C#2.0之前版本声明委托的唯一方法是使用命名方法的时代。不过,这里我们还是看一下在没有匿名方法之前,我们是如何声明委托的。 (1)首先定义一个委托类型: public dele 阅读全文
posted @ 2020-05-29 11:33
delafqm
阅读(707)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.NET 3.x 新增特性 ] 1.1 不好意思,我匿了 在开发中,我们有时会像下面的代码一样声明一个匿名类:可以看出,在匿名类的语法中并没有为其命名,而是直接的一个new { }就完事了。从外部看来,我们根本无法知道这个类是干神马的,也不知道它有何作用。 var annoyCla 阅读全文
posted @ 2020-05-29 11:29
delafqm
阅读(4875)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.NET 3.x 新增特性 ] 4.1 属性初始化器 (1)在开发中,我们经常会这些为new出来的对象设置属性: static void InitialPropertyFunc() { Person p = new Person() { Name = "小强", Age = 18 阅读全文
posted @ 2020-05-29 11:26
delafqm
阅读(346)
评论(0)
推荐(0)
摘要:
[ C# 4.0/.NET 4.0 新增特性 ] 3.1 带默认值的方法 static void Main(string[] args) { // 01.带默认值参数函数 FuncWithDefaultPara(); // 02.省略一个默认参数调用 FuncWithDefaultPara(1008 阅读全文
posted @ 2020-05-29 11:24
delafqm
阅读(1769)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.Net 3.x 新增特性 ] 2.1 犹抱琵琶半遮面—你能猜出我是谁? 以前,我们在定义每个变量时都需要明确指出它是哪个类型。但是,当有了var之后,一切变得那么和谐,我们可以用一个var定义所有的类型。 var age = 100; age += 150; var name = 阅读全文
posted @ 2020-05-29 11:22
delafqm
阅读(179)
评论(0)
推荐(0)
摘要:
[ C# 3.0/.Net 3.x 新增特性 ] 1.1 以前的做法:先写私有变量,再写公有属性 public class Student { private Int32 _id; public Int32 Id { get { return _id; } set { _id = value; } 阅读全文
posted @ 2020-05-29 11:21
delafqm
阅读(2417)
评论(0)
推荐(2)
摘要:
通用的语言基础是.NET运行的基础,当我们对程序运行的结果有异议的时候,如何透过本质看表面,需要我们从底层来入手探索,这时候,IL便是我们必须知道的基础。 一、IL基础概念 1.1 什么是IL? IL是.NET框架中间语言(Intermediate Language)的缩写。使用.NET框架提供的编 阅读全文
posted @ 2020-05-29 11:02
delafqm
阅读(852)
评论(0)
推荐(0)
摘要:
3.1 理解同步块和同步块索引 同步块是.NET中解决对象同步问题的基本机制,该机制为每个堆内的对象(即引用类型对象实例)分配一个同步索引,该索引中只保存一个表明数组内索引的整数。具体过程是:.NET在加载时就会新建一个同步块数组,当某个对象需要被同步时,.NET会为其分配一个同步块,并且把该同步块 阅读全文
posted @ 2020-05-29 10:54
delafqm
阅读(480)
评论(0)
推荐(0)
摘要:
.NET为多线程编程提供了丰富的类型和机制,程序员需要做的就是掌握这些类型和机制的使用方法和运行原理。 2.1 如何在.NET程序中手动控制多个线程? .NET中提供了多种实现多线程程序的方法,但最直接且灵活性最大的,莫过于主动创建、运行、结束所有线程。 (1)第一个多线程程序 .NET提供了非常直 阅读全文
posted @ 2020-05-29 10:49
delafqm
阅读(1967)
评论(0)
推荐(2)
摘要:
下面的一些基本概念可能和.NET的联系并不大,但对于掌握.NET中的多线程开发来说却十分重要。我们在开始尝试多线程开发前,应该对这些基础知识有所掌握,并且能够在操作系统层面理解多线程的运行方式。 1.1 操作系统层面的进程和线程 (1)进程 进程代表了操作系统上运行着的一个应用程序。进程拥有自己的程 阅读全文
posted @ 2020-05-29 10:44
delafqm
阅读(247)
评论(0)
推荐(1)
摘要:
特性机制可以帮助程序员以申明的方式进行编程,而不再需要考虑实现的细节。 4.1 神马是特性?如何自定义一个特性? (1)特性是什么? 特性是一种有别于普通命令式编程的编程方式,通常被称为申明式编程方式。所谓申明式编程方式就是指程序员只需要申明某个模块会有怎样的特性,而无需关心如何去实现。下面的代码就 阅读全文
posted @ 2020-05-29 10:42
delafqm
阅读(164)
评论(0)
推荐(0)
摘要:
3.1 反射的基本原理是什么?其实现的基石又是什么? 反射是一种动态分析程序集、模块、类型及字段等目标对象的机制,它的实现依托于元数据。元数据,就是描述数据的数据。在CLR中,元数据就是对一个模块定义或引用的所有东西的描述系统。 3.2 .NET中提供了哪些类型实现反射? 在.NET中,为我们提供了 阅读全文
posted @ 2020-05-29 10:38
delafqm
阅读(162)
评论(0)
推荐(0)
摘要:
事件这一名称对于我们.NET码农来说肯定不会陌生,各种技术框架例如WindowsForm、ASP.NET WebForm都会有事件这一名词,并且所有的定义都基本相同。在.NET中,事件和委托在本质上并没有太多的差异,实际环境下事件的运用却比委托更加广泛。 2.1 简述事件的基本使用方法 在Micro 阅读全文
posted @ 2020-05-29 10:31
delafqm
阅读(186)
评论(0)
推荐(0)
摘要:
1.1 简述委托的基本原理 委托这个概念对C++程序员来说并不陌生,因为它和C++中的函数指针非常类似,很多码农也喜欢称委托为安全的函数指针。无论这一说法是否正确,委托的的确确实现了和函数指针类似的功能,那就是提供了程序回调指定方法的机制。 在委托内部,包含了一个指向某个方法的指针(这一点上委托实现 阅读全文
posted @ 2020-05-29 10:22
delafqm
阅读(202)
评论(0)
推荐(0)
摘要:
3.1 流的概念以及.NET中有哪些常见的流? 流是一种针对字节流的操作,它类似于内存与文件之间的一个管道。在对一个文件进行处理时,本质上需要经过借助OS提供的API来进行打开文件,读取文件中的字节流,再关闭文件等操作,其中读取文件的过程就可以看作是字节流的一个过程。 常见的流类型包括:文件流、终端 阅读全文
posted @ 2020-05-29 10:06
delafqm
阅读(479)
评论(0)
推荐(0)
摘要:
2.1 int[]是值类型还是引用类型? 在.NET中的数组类型和C++中区别很大,.NET中无论是存储值类型对象的数组还是存储引用类型的数组,其本身都是引用类型,其内存也都是分配在堆上的。它们的共同特征在于:所有的数组类型都继承自System.Array,而System.Array又实现了多个接口 阅读全文
posted @ 2020-05-29 10:00
delafqm
阅读(166)
评论(0)
推荐(0)
摘要:
1.1 StringBuilder类型有什么作用? 众所周知,在.NET中String是引用类型,具有不可变性,当一个String对象被修改、插入、连接、截断时,新的String对象就将被分配,这会直接影响到性能。但在实际开发中经常碰到的情况是,一个String对象的最终生成需要经过一个组装的过程, 阅读全文
posted @ 2020-05-29 09:56
delafqm
阅读(392)
评论(0)
推荐(0)
摘要:
2.1 如何针对不同的异常进行捕捉? 相信阅读本文的园友都已经养成了try-catch的习惯,但对于异常的捕捉和处理可能并不在意。确实,直接捕捉所有异常的基类:Exception 使得程序方便易懂,但有时这样的捕捉对于业务处理没有任何帮助,对于特殊异常应该采用特殊处理能够更好地引导规划程序流程。 下 阅读全文
posted @ 2020-05-29 09:50
delafqm
阅读(414)
评论(0)
推荐(0)
摘要:
1.1 C#中的类可以多继承吗? 在C#中申明一个类型时,只支持单继承(即继承一个父类),但支持实现多个接口(Java也是如此)。像C++可能会支持同时继承自多个父类,但.NET的设计小组认为这样的机制会带来一些弊端,并且没有必要。 首先,看看多继承有啥好处?多继承的好处是更加贴近地设计类型。例如, 阅读全文
posted @ 2020-05-29 09:40
delafqm
阅读(349)
评论(0)
推荐(0)
摘要:
2.1 .NET中栈和堆的差异? 每一个.NET应用程序最终都会运行在一个OS进程中,假设这个OS的传统的32位系统,那么每个.NET应用程序都可以拥有一个4GB的虚拟内存。.NET会在这个4GB的虚拟内存块中开辟三块内存作为 堆栈、托管堆 以及 非托管堆。 (1).NET中的堆栈 堆栈用来存储值类 阅读全文
posted @ 2020-05-29 09:33
delafqm
阅读(1226)
评论(0)
推荐(1)
摘要:
1.1 .NET中所有类型的基类是什么? 在.NET中所有的内建类型都继承自System.Object类型。在C#中,不需要显示地定义类型继承自System.Object,编译器将自动地自动地为类型添加上这个继承申明,以下两行代码的作用完全一致: public class A { } public 阅读全文
posted @ 2020-05-29 09:26
delafqm
阅读(124)
评论(0)
推荐(0)

浙公网安备 33010602011771号