创建 IEqualityComparer的接口类必须实现Equals和GetHashCode方法 public class TipComparer : IEqualityComparer<TipDetails> { public bool Equals(TipDetails x, TipDetails y) { if (Object.ReferenceEquals(x, y)) return true; if (Object.ReferenceEquals(x, null) || Object…
通常,使用linq查询时需要一个实现IQueryable<T> 的查询对象 public class DataA<T> : IQueryable<T> {....} 之后通过 var q = from c in new DataA<int>() where c > 0 select new { a = c.ToString() }; 进行查询,使用IQueryProvider  收集用户输入的表达式进行处理. 但是查询本身实际上只关注查询对象上有无可用…
一.distinct,group by与ROW_Number()窗口函数使用方法 1. Distinct用法:对select 后面所有字段去重,并不能只对一列去重. (1)当distinct应用到多个字段的时候,distinct必须放在开头,其应用的范围是其后面的所有字段,而不只是紧挨着它的一个字段,而且distinct只能放到所有字段的前面 (2)distinct对NULL是不进行过滤的,即返回的结果中是包含NULL值的 (3)聚合函数中的DISTINCT,如 COUNT( ) 会过滤掉为NU…
LINQ方法实际上是对IEnumerable<TSource>的扩展,如图:   本篇自定义一个MyWhere方法,达到与Where相同的效果.     使用LINQ自带的Where方法 class Program { static void Main(string[] args) { List<int> list = new List<int>(){1, 2, 3}; IEnumerable<int> query = list.Where(x =>…
课程6 委托.匿名方法.Lambda表达式.Linq查询表达式 上课日志1 一.委托的基本认识 提问:能不能把方法作为参数传递??? 也即是能不能声明一个能存放方法的变量呢——委托. 委托是一种数据类型,像类一样(可以声明委托类型变量),委托是用来接受方法的,通过委托可以把方法作为参数进行传递. namespace _01委托的基本认识 { //1.定义委托类型.定义一个委托类型(委托是一种数据类型,能接受方法的数据类型),用来保存无参数,无返回值的方法 //委托最好要定义在命名空间中,和类是同…
“标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> 接口或 IQueryable<T> 接口.标准查询运算符提供了包括筛选.投影.聚合.排序等功能在内的查询功能.        各个标准查询运算符在执行时间上有所不同,具体情况取决于它们是返回单一值还是值序列.返回单一值的方法(例如 Average 和 Sum)会立即执行.返回序列的方法会延迟查询执行,并返回一个可枚举的对象.…
问题引出:在实际中遇到一个问题,要进行集合去重,集合内存储的是引用类型,需要根据id进行去重.这个时候linq 的distinct 就不够用了,对于引用类型,它直接比较地址.测试数据如下: class Person { public int ID { get; set; } public string Name { get; set; } } List<Person> list = new List<Person>() { new Person(){ID=1,Name="…
在HTML Helper,帮助类的帮助下,我们可以动态的创建HTML控件.HTML帮助类是在视图中,用来呈现HTML内容的.HTML帮助类是一个方法,它返回的是string类型的值. HTML帮助类,分成三个类型: Inline HTML helpers[内联的HTML帮助类,例如@Html.Label等] Built-in HTML helpers[也就是嵌套的HTML帮助类,即@helper辅助方法] Custom HTML helpers[自定义的HTML帮助类] 在这里,我们学习第二种,…
方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值,返回类型写void. [访问修饰符] void  <方法名>(){ 方法主体: } 如果需要写返回值,返回类型写需要返回的类型: 例如返回string类型: [访问修饰符] string <方法名>(){ 方法主体: } 方法名:Pascal 每个单词的首字母都大些.其余字母小写 参…
最近有人问到querySelectorAll 方法相比 getElementsBy 系列方法区别,一时没想起来说些什么,今天查下文档,总结一下它们的区别,以便自己理解. 1. W3C 标准querySelectorAll 属于 W3C 中的 Selectors API 规范 [1].而 getElementsBy 系列则属于 W3C 的 DOM 规范 [2]. 2. 浏览器兼容querySelectorAll 已被 IE 8+.FF 3.5+.Safari 3.1+.Chrome 和 Opera…
has(selector选择器或DOM元素)   将匹配元素集合根据选择器或DOM元素为条件,检索该条件在每个元素的后代中是否存在,将符合条件的的元素构成新的结果集. 下面举一个例子: <ul> <li>list item 1</li> <li>list item 2 <ul> <li><div><span>a</span></div>list item 2-a</li> &…
js中几种实用的跨域方法原理详解 这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据.只要协议.域名.端口有任何一个不同,都被当作是不同的域. 下表给出了相对http://store.company.com/dir/page.html同源检测的结果: 要解决跨域的问题,我们可以使用以下几种方法: 一.通过jsonp跨域 在js中,我们直接用XMLHttpRequest请求不同域上的数据时,…
背景 年龄大点的程序员都知道在vs2010中创建单元测试非常的简单,鼠标定位在方法名字,右键创建单元测试,就会创建一个测试方法,即使是在私有方法上也可以创建测试方法. VS2010以后就没这么简单了,微软默认取消了这种快捷方式,安装  Unit Test Generator 插件也只能在公有方法上创建单元测试.为了方便的测试私有方法,我们需要一种反射调用私有成员的方法.这种现成的方法可以在网上找到不少,我这里是讲述如何从VS2010 的UnitTestFramework类库提取反射调用私有成员的…
在Think中S方法的用法,F方法其实是S方法的一个子集功能, 仅用于简直数据缓存,并且只能支持文件形式,不支持缓存有效期,因为采用 的是PHP返回方式,所以其效率较S方法较高,因此我们也称之为快速缓存方法. ___________________________________________________________________________________________ F方法的特点是: 简单数据缓存: 文件形式保存: 采用PHP返回数据方式加载缓存: 支持子目录缓存已经自动…
30分钟入门Java8之默认方法和静态接口方法 前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方法和静态接口方法. 这一Java8的新语言特性,在Android N中也得到了支持.至于如何在Android开发中配置Java8的开发环境,请查看上一篇文章30分钟入门Java8之lambda表达式. 默认方法 默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代码的…
结论:使用基类的引用,访问派生类对象时,得到的是基类的成员. 虚方法和覆写方法…
方法的重载 1.方法重载的前提:方法名称必须一样 2.构成重载的条件:参数不一样(参数数量不一样,参数类型不一样) 方法的可变参数 1.可变参数的值的数量可以是0到多个. 2.可变参数调用的时候,没有必要将传递的值封装成一个数组,可变参数会自动为您创建一个合适长度的数组. 3.如果没有传递任何参数,那么会生成一个长度为0的数组--索引越界. 4.可变参数的实参值的类型必须一致. 5.可变参数必须是参数列表的最后一个. 6,父子类也可以实现方法的重载.…
对所有方法进行校验1.通过手工编写代码的形式实现 需求:用户名:不能为空手机号:不能为空,并且要符合手机号的格式1,3/5/8,后面是9个数字 第01步:导包 第02步:配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi…
前言 上一篇文章30分钟入门Java8之lambda表达式,我们学习了lambda表达式.现在继续Java8新语言特性的学习,今天,我们要学习的是默认方法和静态接口方法. 这一Java8的新语言特性,在Android N中也得到了支持.至于如何在Android开发中配置Java8的开发环境,请查看上一篇文章30分钟入门Java8之lambda表达式. 默认方法 默认方法让我们能给我们的软件库的接口增加新的方法,并且能保证对使用这个接口的老版本代码的兼容性. 下面通过一个简单的例子来深入理解下默认…
在进行Android开发的过程中,在一个非Activity类(此处假设类名为MyNewClass)中引用了getResources()方法,如下: Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.marker_red); 结果错误信息提示:MyNewClass.class中没有getResources()方法. 在百度和Google上各种寻找,没有合适的解决办法. 有人这么解决: 可以传递指针给你的acti…
一.方法重载 如果子类中的方法与它的超类中的方法有相同的方法名,则称子类中的方法重载超类中的方法,特别是当超类和子类中的方法名和参数类型都相同时,在子类中调用该方法时,超类中的方法会被隐藏.考虑下面程序: class A { int i, j; A(int a, int b) { i = a; j = b; } // display i and j void show() { System.out.println("i and j: " + i + " " + j)…
测试用例--除去末尾特定字符或字符串,Remove方法和TrimEnd方法的比较 结论: 如果是除去末尾特定字符或字符串:TrimEnd方法性能优于Remove方法 具体测试用例如下: Stopwatch watcher = ; List<; i < count; i++) { strList.Add(i.ToString()); } , ).ToString(); Console.WriteLine("StringBuilder.Remove:{0}", watcher.…
在jQuery中没有音频视频直接播放的方法,我们在写音频视频时,应该将jquery的方法转化为js方法:play():pause() 补充:   将jq对象转化成js对象写法: var music=$("#music")[0];//将jq转化为js对象:将js对象转化成jq对象:这个对象已经存在,则只需要在此对象上加上$(),也即是$(对象) <!DOCTYPE html> <html lang="en"> <head> <…
Dalvik字节码有着自己的类型,方法与字段表示方法,这些方法与Dalvik虚拟机指令集一起组成了一条条的Dalvik汇编代码. 1.类型 Dalvik字节码只有两种类型,基本类型与引用类型.Dalvik使用这两种类型来表示Java语言的全部类型,除了对象与数组属于引用类型外,其他的Java类型都是基本类型.BakSmali严格遵守DEX文件格式中的类型描述符定义.类型描述符对照如下表 语法 含义 V void,只用于返回类型 Z boolean B byte S short C char I…
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如: $Model = D('User'); $Model->create(); // 这里略过具体的自动生成和验证判断 $Model->add(); 又或者直接对数据对象赋值,例如: $Model = M('User'); $Model->name =…
------------------------------------------- 继承 一段代码: #import <Foundation/Foundation.h> @interface Animal : NSObject {     int _age; } -(void)setAge:(int)age; -(void)eat:(NSString *)foodName; -(void)run; @end @interface Dog : Animal -(void)lookHome;…
一.this关键字,使用的情形,以及如何使用. 1.使用的情形 类中的方法体中使用this  --初始化该对象 类的构造器中使用this --引用,调用该方法的对象 2.不写this,调用 只要方法或者构造器中  不存在成员变量与局部变量同名的情况,可直接不写this 否则方法中或构造器中使用的就是局部变量 3.static 静态方法不能调用this,不能调用任何非static修饰的成员变量 或者方法 二.java方法中  参数传递特性 1.基本数据类型--实际是新增变量,并赋值而已   不过代…
这两天在学习权限控制模块.以前看过传智播客黎活明老师的巴巴运动网视频教程,里面就讲到权限控制的解决方案,当时也只是看看视频,没有动手实践,虽说看过几遍,可是对于系统中的权限控制还是很迷茫,所以借着这次机会动手实践一下. 黎活明老师的巴巴运动网使用的框架是struts + spring + jpa,大致思路是使用自定义注解,在需要权限控制的方法前使用注解定义方法所需的权限,然后使用AOP拦截访问的方法,在执行目标对象前通过反射取得目标对象所需的权限,然后从当前session中取得登陆用户,遍历用户…
/* * 方法的调用和方法重载 */ /* * 什么是方法? * 方法就是一个有名字的代码段; * 方法的调用: * 在方法里调用另外一个方法里面的东西就是方法调用; * 或者可以认为"另外一个方法的名字()"就是方法的调用; * 方法的重载: * 就是在main方法外写了多个方法名相同,但是形参列表不同的方法,在main方法中调用这个方法时括号内写上实参,程序会默认调用实参和调用方法里形参相匹配的方法; */ // 方法形式和方法的类部调用 /* public class JavaS…
MVC 如何在一个同步方法(非async)方法中等待async方法 问题 首先,在ASP.NET MVC 环境下对async返回的Task执行Wait()会导致线程死锁.例: public ActionResult Asv2() { //dead lock var task = AssignValue2(); task.Wait(); return Content(_container); } private void Assign() { _container = "Hello World&q…