9 C丶C魔女想睡觉

尚未进行身份认证

我要认证

菜鸟一枚

等级
TA的排名 46w+

C#表达式目录树二

文章目录一个需求的探讨表达式目录树的解析通过表达式目录树构造sql表达式的链接一个需求的探讨我们平时封装的数据库查询方法Find<T>(int id)我们都把条件定死了,而不是动态的查询条件,不是不写,而是实现不了,写不出来,因为一个表的字段可能是Id,name等等不同的字段,而字段的值也可能是int,string,datetime等不同的数据类型,而操作符又可能是大于,小于,等于,包含这些,更有可能条件是一个条件,两个条件,三个条件等等,这些导致了我们没法写一个通用find封装,而只能根据

2020-07-29 11:59:15

C#表达式目录树一

文章目录什么是表达式目录树Expression表达式目录树的本质表达式目录树的拼装拼装示例一拼装示例二拼装示例三什么是表达式目录树Expression表达式目录树的本质以前我们写Linq查询条件像这样: new List<int>().Where(i => i > 10);我们AsQueryable()一下: new List<int>().AsQueryable().Where(i => i > 10);我们查看AsQueryable的w

2020-07-27 17:29:00

c#linq

文章目录扩展方法linq的简单演化Linq To Object常见的使用示例Linq To SQL总结扩展方法扩展方法的具体定义我就不写自行去搜索,我简单说一下扩展方法,定义一个扩展方法就在一个静态类中,定义一个静态方法,方法的第一个参数就是你需要扩展类型,之后你可以可以在这个类型的实例直接调用这个方法:比如我们为string增加一个截断的如果超过多长就截取后面加…的扩展方法。 public static class ExtendMethod { public static s

2020-07-22 17:45:14

C#Lambda表达式

文章目录Lambda表达式lambda表达式的演化lambda多播委托Lambda表达式说起lambda表达式,其实本质就是匿名函数一种效简化代码,一种方便的写法。下面我们通过代码的演化来增强对lamdaba表达式的理解。lambda表达式的演化在.NetFramework1.0我们的委托实例是这么写的:public delegate void NoReturnNoPara(); //.NetFramework1.0 1.1NoReturnNoPara method = new NoRet

2020-07-22 17:00:07

C#委托和事件

文章目录泛型委托Action/Func基本介绍Action/Func的使用Action/Func的意义委托的多种途径实例化多播委托多播委托的作用事件委托与事件的区别和联系winform里的事件自定义事件实现流程演示观察者模式(额外)泛型委托上一章我们介绍了什么是委托、委托的基本使用一级委托的意义。但在实际使用过程中我们很少自定义委托,以为官方框架为我们提供了两个内置的委托Action和Func通过这个l内置的委托基本上可以实现所有的需求,而不需要再自定义委托,而且官方提供这种封装,自然就是希望大家都统一

2020-07-21 17:31:15

C#委托详解

文章目录什么是委托委托的基本使用委托的作用与意义示例什么是委托我们平时的开发过程中就会发现委托无处不在,例如:Func,Action,异步多线程,事件这些都用到了委托。从Framework1.0开始,委托就已经无处不在。那委托到底是什么呢,其实委托的本质就是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递在方法重载的上下文中,方法的签名不包括返回值在委托的上下文中,方法的签名是包含返回值的委托(delegate)的声明的语法如下:public delegate v

2020-07-16 11:54:57

C#特性详解二

文章目录特性提供额外的信息特性封装提供额外行为Validate验证特性提供额外的信息编写一个示例,演示特性是怎么提供额外的信息的。我们经常用到枚举enum,我们常有一个需求就是我们通过枚举可以轻易获取到属性的字符串名称或者响应数字,但是一般我们做数据展示的时候不想展示属性名称而是想用一个中文描述或者其它什么的。下面我们的示例就是怎么实现这个需求。首先我么先自定义一个特性类RemarkAttribute: /// <summary> /// Remark特性 /// &l

2020-07-15 16:38:59

C#特性详解一

文章目录特性无处不在特性的本质自定义特性基本语法和使用自定义特性操作特性怎么产生价值特性无处不在EF–MVC–WCF–Webservice–UnitTest–IOC–AOP–SuperSocket[Obsolete]编译时就有提示 影响了编译器[Serializable]对象就可以序列化 影响了程序运行特性的本质特性就是一个类,直接继承/间接继承自Attribute父类约定俗成用Attribute结尾,标记时就可以省略掉自定义特性基本语法和使用自定义特性类(自定义特需要继承At

2020-07-14 15:55:59

面向对象

面向对象概述如何把大象装进冰箱?一般的方法就是:打开冰箱->把大象放进冰箱->关上冰箱。这就是典型的面向过程,非常符合人的常规思维而面向对象就好变成了:OOP–对象封装,把属性/行为都包裹进去,画格子自成体系,内部随便改动,不会影响到别人有了面向对象之后,有了一个收纳的概念一个个类交互组成功能系统平台一块块砖砌墙房间大厦面向对象桑基本特征:封装、继承、多态封装:隔离,外部不用关心怎么实现,只要接口不变,内部可以随意扩展;安全,

2020-07-14 15:53:05

反射详解二

文章目录回顾直接调用反射对象的方法(不做转换)实际应用MVC的局限性AOP调用私有方法调用泛型方法调用泛型类+泛型方法ref out的方法怎么调用反射在属性中的使用类的反射使用意义数据库实体类的应用实例总结优点缺点Emit(没有详解自行查资料)作业回顾调用类里的方法需要对创建实例进行转换Assembly assembly = Assembly.Load("Ruanmou.DB.SqlServer");Type type = assembly.GetType("Ruanmou.DB.SqlServ

2020-07-14 15:49:33

反射详解一

文章目录本章学习内容反射基础反射工具类反射基本使用j简单获取全部dll中的信息调用类型中的不同参数的构造函数反射最简单好处示例反射破坏单例模式反射泛型类本章学习内容dll-IL-metadata-反射反射加载dll,读取module、类、方法、特性反射创建对象,反射+简单工厂+配置文件破坏单例 创建泛型反射基础反射是无处不在的,MVC-Asp.Net-ORM-IOC-AOP 几乎所有的框架都离不开反射反编译工具不是用的反射,是一个逆向工程IL:也是一种面向对象语言,但是不太好阅读

2020-07-14 15:46:04

C#泛型学习笔记

泛型简单的来说就是用一个东西来满足多种不同类型的需求历史:最开始使用object来做万能类型,能使用object的原因是:1.任何父类出现的地方,都可以用子类来代替2.object是一切类型的父类用object的问题:1、装箱和拆箱问题传入一个int值(栈)object又在堆里面,如果把int传递进来,就会把值从栈里面copy到堆里2、类型安全问题,可能会有,因为传递的对象是没有限制的思考:为什么泛型方法支持不同类型的参数?1.泛型声明方法时,没有写死..

2020-07-14 15:40:59
勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。