摘要:
本篇体验LINQ的各种查询运算符。 先创建一个泛型方法,用来显示查询结果: private static void DisplayQuery(IEnumerable query) { foreach (T item in query) { //Console.Wr...
阅读全文
posted @ 2014-04-01 16:18
Darren Ji
阅读(1518)
推荐(1)
摘要:
LINQ方法实际上是对IEnumerable的扩展,如图: 本篇自定义一个MyWhere方法,达到与Where相同的效果。 使用LINQ自带的Where方法 class Program { static void Main(string[] args) { List list = new...
阅读全文
posted @ 2014-04-01 01:05
Darren Ji
阅读(649)
推荐(2)
摘要:
大家好,我是集合,可能大家对我已经很熟悉了,IEnumerable, IList,List,IQueryable......我就这样被大家使用着,今天,我想与大家走进一步,让您了解更真实的我。 我们就专门为Book类来打造一个集合类吧: public class Book { public string Id { get; set; } public s...
阅读全文
posted @ 2014-03-31 11:19
Darren Ji
阅读(410)
推荐(1)
摘要:
当想对集合筛选的时候,经常想到用Where过滤,而实际上List.FindAll()也是不错的选择。 如果有一个订单,属性有下单时间、区域等等。如何使用List.FindAll(),根据年份、月份、天、区域来过滤呢? □ 思路 List.FindAll(Predicate match)方法Predicate是一个泛型委托,返回bool类型:public delegate bool Predica...
阅读全文
posted @ 2014-03-28 02:59
Darren Ji
阅读(1873)
推荐(2)
摘要:
var str = "我有一头小毛驴,我从来也不骑"; 1、打印出某索引位置上的字符 //结果:毛 alert(str.charAt(5)); 2、打印出某索引位置上的Unicode字符 //结果:27611 alert(str.charCodeAt(5)); 3、串联字符串 var str1 = "有一天我心血来潮,骑着去赶集"; al...
阅读全文
posted @ 2014-03-27 09:17
Darren Ji
阅读(3152)
推荐(0)
摘要:
页面部分: 点我 □ 方法一: attr('checked')返回undefined,不推荐使用 1: 无论是否勾选,都返回undefined: □ 方法二:prop('checked')返回true或false,可使用 1: $(function() { 2: $('#bt...
阅读全文
posted @ 2014-03-27 00:57
Darren Ji
阅读(2551)
推荐(0)
摘要:
当电梯超过最大承重800公斤,报警器报警。把电梯看成被观察者,报警器看成观察者。分别使用推模式和拉模式实现超重报警。 推模式实现超重报警 被观察者在运行本身方法的时候,达到一定条件,就触发通知事件,把自己的状态"推"个观察者。 →把电梯看作是被观察者,当运行其TestWeight()方法时候,如果满足某种weight变量>800,就触发方法把自己的状态推给观察者。 ...
阅读全文
posted @ 2014-03-26 23:31
Darren Ji
阅读(946)
推荐(2)
摘要:
发明一辆智能汽车,能自动侦测与前方车辆的车距,当车距小于100米的时候,就报警。 □ 思路 ● 报警器显然是观察者 ● 智能汽车就是被观察者 智能汽车有一个侦测车距的方法,当车距小于100米的时候,就触发一个事件。这个事件就遍历所有注册的观察者,让每个观察这作出响应。 被观察者接口只负责注册和取消注册。 1: //被观察者接口 2: ...
阅读全文
posted @ 2014-03-26 00:09
Darren Ji
阅读(314)
推荐(1)
摘要:
可以通过以下几种方式动态创建html元素: 1、使用jQuery创建元素的语法 2、把动态内容存放到数组中,再遍历数组动态创建html元素 3、使用模版 □ 使用jQuery动态创建元素追加到jQuery对象上。 1: 2: 3: 4: 17: 18: 19: ...
阅读全文
posted @ 2014-03-25 00:59
Darren Ji
阅读(2675)
推荐(0)
摘要:
抽象出一个炒菜的类。 1: //炒菜 2: public class Cooking 3: { 4: public string Cook(string food1, string food2) 5: { 6: Thread.CurrentThread....
阅读全文
posted @ 2014-03-25 00:01
Darren Ji
阅读(355)
推荐(1)
摘要:
为用户创建专属上传文件夹后,如果想在其中再创建分类子文件夹,该怎么做?可以在提交文件的视图中再添加一个隐藏域,并设置 name="uploadContext"。 相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文件上传02-使用HttpPostedFileBase上传多个文件 MVC文件上传03-使用Request.Files上传多个文件 MVC文件上传0...
阅读全文
posted @ 2014-03-24 16:21
Darren Ji
阅读(989)
推荐(1)
摘要:
当需要为每个用户建立一个专属上传文件夹的时候,可以在提交文件的视图中添加一个隐藏域,并设置name="objectContext"。 相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文件上传02-使用HttpPostedFileBase上传多个文件 MVC文件上传03-使用Request.Files上传多个文件 MVC文件上传04-使用客户端jQuery-...
阅读全文
posted @ 2014-03-24 15:52
Darren Ji
阅读(957)
推荐(0)
摘要:
本篇通过在配置文件中设置,对上传图片修剪后保存到指定文件夹。 相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文件上传02-使用HttpPostedFileBase上传多个文件 MVC文件上传03-使用Request.Files上传多个文件 MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传...
阅读全文
posted @ 2014-03-24 13:05
Darren Ji
阅读(1488)
推荐(0)
摘要:
当需要在控制器中处理除了文件的其他表单字段,执行控制器独有的业务逻辑......等等,这时候我们可以自定义控制器。 MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文件上传02-使用HttpPostedFileBase上传多个文件 MVC文件上传03-使用Request.Files上传多个文件 MVC文件上传04-使用客户端jQuery-Fil...
阅读全文
posted @ 2014-03-24 00:09
Darren Ji
阅读(1167)
推荐(0)
摘要:
在零配置情况下,文件的上传文件夹是根目录下的Files文件夹,如何自定义文件的上传文件夹呢? MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文件上传02-使用HttpPostedFileBase上传多个文件 MVC文件上传03-使用Request.Files上传多个文件 MVC文件上传04-使用客户端jQuery-File-Upload插件...
阅读全文
posted @ 2014-03-23 20:34
Darren Ji
阅读(1403)
推荐(1)
摘要:
本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传。MVC文件上传相关兄弟篇:MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文件上传02-使用HttpPostedFileBase上传多个文件 MVC文件上传03-使用Request.Files上传多个文件 处理文件上传的服务端组件Backload用于处理文件上传的服务端组件。Backload与客户端文件上传插件(比如jQuery-File-Upload)配合使用,初步形成一个处理文件异步上传的解决方案。□ Badkload的一些功能和特点● 零配置:Backload.
阅读全文
posted @ 2014-03-23 15:33
Darren Ji
阅读(2437)
推荐(0)
摘要:
□ 背景 通过NuGet安装某程序包后,运行程序出现如上错误。 □ 分析 可能是程序集版本不兼容引起的,可以通过NuGet先把程序包删除,然后再安装最新或某个版本的程序包。 □ 解决方法 通过"uninstall-package -f WebGrease"先卸载,然后通过"install-package WebGrease"再下载最新版本,问题解决。 关于使用NuGe...
阅读全文
posted @ 2014-03-23 12:17
Darren Ji
阅读(1366)
推荐(0)
摘要:
订阅者方法超时会让客户端程序出现某种程度的中断。 模拟考试,比较现实的状况是谁先答完,谁先交试卷,不可能按学生序号来决定交试卷顺序。 先模拟一个订阅者方法超时□ 老师的职责是组织考试,并让每个注册学生(订阅者)答题。 1: public class Teacher 2: { 3: public event EventHandler TestEvent; 4: 5: public void Test() 6: { 7: Console.WriteLine("老师:同...
阅读全文
posted @ 2014-03-23 00:34
Darren Ji
阅读(472)
推荐(1)
摘要:
本文体验来自http://dataannotationsextensions.org/的DataAnnotationsExtensions.MVC3,是DataAnnotation的扩展,可以在客户端和服务端进行双重验证,能验证的类型包括: ● 邮件验证 ● 整型验证 ● 日期验证 ● 数字验证(即从零开始的数字,不包括带小数点) ● 是否相同验证 ● 文件类型...
阅读全文
posted @ 2014-03-22 00:28
Darren Ji
阅读(1234)
推荐(0)
摘要:
当委托有返回值,事件注册了多个方法后,触发事件,到底是哪个注册方法返回值呢? 模拟"我是歌手"采访观众,把"我是歌手"看作被监视对象,把观众看作是观察者Observer。 让最后一个注册方法返回值 1: namespace ConsoleApplication15 2: { 3: class Program 4: { ...
阅读全文
posted @ 2014-03-21 11:14
Darren Ji
阅读(526)
推荐(1)
摘要:
本篇体验在控制器方法中使用controllerContext.HttpContext.Request.Files上传多个文件。兄弟篇为: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC文件上传02-使用HttpPostedFileBase上传多个文件 □ 控制器 1: using System; 2: usi...
阅读全文
posted @ 2014-03-21 00:59
Darren Ji
阅读(4059)
推荐(0)
摘要:
本篇体验上传多个文件。兄弟篇为: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 MVC最基本上传文件方式中的一个遗漏点 □ 前台视图部分 1: 2: 3: 4: □ 控制器部分 1: [HttpMethod.Post] 2: public Action...
阅读全文
posted @ 2014-03-21 00:34
Darren Ji
阅读(7041)
推荐(1)
摘要:
设计智能汽车,当后面车与前方车小于50米的时候,后面车语音报警,仪表盘显示报警信息,并收到前方车的相关信息。 □ 思路 ● 前方车看作是被监视对象,后方车为观察者Observer。 ● Observer方法需要一个与事件相关的参数,可以把这个参数封装成一个继承EventArgs。 ● Observer方法需要一个被监视对象的参数,通过这个参数可以拿到被监视对象的public属性...
阅读全文
posted @ 2014-03-20 10:05
Darren Ji
阅读(453)
推荐(1)
摘要:
本篇实现有关客户、订单和产品的无刷新三级联动,先看最终效果:没有选择时,后2个Select状态为禁用: 当选择第1个Select,第2个Select可供选择,第3个Select依旧禁用: 当选择第2个Select,第3个Select可供选择: 当选择第3个Select,界面出现"显示...
阅读全文
posted @ 2014-03-20 01:58
Darren Ji
阅读(1708)
推荐(3)
摘要:
本篇体验Team Foundation Server 2012安装及源代码管理。 □ 安装 搜索"team foundation server express 2012 安装",并安装。 □ 文档TFS 2012 安装指南和管理指南 http://examcr.am/10Ln5E4 进行下载。 □ 如何打开Team Foundation Server管理控制台 ● “...
阅读全文
posted @ 2014-03-20 01:05
Darren Ji
阅读(3134)
推荐(0)
摘要:
在"MVC二级联动使用$.getJSON方法"中使用$.getJSON()获取后端返回的JSon。 本篇使用jQuery的$.ajax()获取后端返回的字符串,实现二级联动。 □ View Models 1: namespace MvcApplication1.Models 2: { 3: public class Province ...
阅读全文
posted @ 2014-03-19 09:58
Darren Ji
阅读(750)
推荐(0)
摘要:
当一个被监视对象的方法执行会触发观察者Observer的方法的时候,我们就可以在被监视对象中声明委托和事件。 例子 有一个宠物追踪器挂宠物身上,只要宠物离开主人100米之外,主人手上的显示器显示警告信息并声音报警。 1: class Program 2: { 3: static void Main(string[] a...
阅读全文
posted @ 2014-03-19 00:30
Darren Ji
阅读(461)
推荐(1)
摘要:
本篇使用jQuery的$.getJSON()实现二级联动。 □ View Models 1: namespace MvcApplication1.Models 2: { 3: public class Province 4: { 5: public int ID { get; set; } 6:...
阅读全文
posted @ 2014-03-18 03:40
Darren Ji
阅读(2057)
推荐(1)
摘要:
继续上一篇:11委托演绎中国足球队打进世界杯 □ 含有相同参数列表的各种处理球方法不变,把带委托参数的方法放到一个类中 1: namespace ConsoleApplication11 2: { 3: class Program 4: { 5: static void Main(strin...
阅读全文
posted @ 2014-03-18 01:55
Darren Ji
阅读(417)
推荐(0)
摘要:
本篇体验生成CheckBoxList的几个思路,扩展MVC的HtmlHelper生成CheckBoxList,并使之水平排开。 通过遍历从控制器方法拿到的Model集合 □ 思路 比如为一个用户设置角色 1、拿到角色集合实例放到ViewBag中。 2、把该用户当前的角色ID集合也放到ViewBag中。 3、前台视图遍历所有角色,如果当前用户的角色ID包含在用户当前的...
阅读全文
posted @ 2014-03-17 01:05
Darren Ji
阅读(2948)
推荐(2)
摘要:
□ 什么时候使用泛型当针对不同的数据类型,采用相似的逻辑算法,为了避免重复,可以考虑使用泛型。 针对类的泛型针对不同类型的数组,写一个针对数组的"冒泡排序"。□ 思路● 针对类的泛型,泛型打在类旁。 ● 由于在"冒泡排序"中需要对元素进行比较,所以泛型要约束成实现IComparable接口。 class Program { static void Main(string[] args) { SortHelper isorter = new SortHelper(); int[] iarray = {8, 7, 1...
阅读全文
posted @ 2014-03-16 20:51
Darren Ji
阅读(519)
推荐(1)
摘要:
本篇体验MVC上传文件,从表单上传过渡到jquery异步上传。 MVC最基本的上传文件是通过form表单提交方式□ 前台视图部分 □ 控制器部分[HttpMethod.Post]public ActionResult FileUpload(HttpPostedFileBase uploadFile){ if(uploadFile.ContenctLength > 0) { //获得保存路径 string filePath = Path.Combine(HttpContext.Server.MapPath("../Uploads"), ...
阅读全文
posted @ 2014-03-16 14:46
Darren Ji
阅读(1946)
推荐(2)
摘要:
本篇体验在MVC中使用CKEditor,仅仅算思路、基础,暂没有把验证等与CKEditor结合在一起考虑。 □ 1 使用NUGET引入CKEditorPM> Install-Package CKEditor 引入后在Scripts中有了CKEditor的相关文件: □ 2 View Model using System.ComponentModel.DataAnnotations;names...
阅读全文
posted @ 2014-03-16 03:07
Darren Ji
阅读(1126)
推荐(1)
摘要:
string作为一种特殊的引用类型,它有一个重要的特征就是恒定性,或者叫不可变性,即Immutable。作为不可变类型,最主要的特性表现是:一旦创建,只要修改,就会在托管堆上创建一个新的对象实例,而且和上一个对象实例是相邻的,在托管堆上分配到一块连续的内存空间。□ 为什么需要不可变类型?在多线程情况下,一个线程,由于种种原因(比如异常)只修改了一个变量所代表类型的部分成员的值,这时候,另一个进程进来,也访问这个变量,第二个进程访问到的变量成员,一部分成员还是原来的值,另一部分成员的值是第一个线程修改的值,这样就出现了"数据不一致"。而不可变类型就是为了解决在多线程条件下的&
阅读全文
posted @ 2014-03-15 23:44
Darren Ji
阅读(552)
推荐(1)
摘要:
有时候,从数据库读取数据填充对象或从硬盘读取文件填充对象,这样相对耗时。这时候想到了对象的拷贝。 浅拷贝 □ 什么是"浅拷贝" 当针对一个对象前拷贝的时候,对于对象的值类型成员,会复制其本身,对于对象的引用类型成员,仅仅复制对象引用,这个引用指向托管堆上的对象实例。 □ 有一个对象,包含引用类型的类成员和值类型的struct成员 Cinema包含引用类型成员Room和值类型成员...
阅读全文
posted @ 2014-03-14 23:55
Darren Ji
阅读(533)
推荐(1)
摘要:
值类型参数按值传递 class Program { static void Main(string[] args) { int a = 10; Add(a); Console.WriteLine("传递之后的值为:" + a); ...
阅读全文
posted @ 2014-03-14 13:41
Darren Ji
阅读(374)
推荐(0)
摘要:
判断相等的3个方法实例方法 public virtual bool Equals(object obj) { return RuntimeHelpers.Equals(this, obj); }比较值类型静态方法 public static bool Equals(object objA, object objB) { return ((objA == objB) || (((objA != null) && (objB != null)) && objA.Equals(objB))); }比较引用类型静态方法 public static bool Refere
阅读全文
posted @ 2014-03-14 10:38
Darren Ji
阅读(461)
推荐(0)
摘要:
基本□ 哪些属于引用类型类(object,string),接口、数组、委托□ 引用类型分配在哪里● 引用类型变量位于线程栈。 ● 引用类型实例分配在托管堆上。 ● 当引用类型实例的大小小于85000bytes,被分配在GC堆上,当大于或等于85000bytes,被分配在LOH(Large Object Heap)上。□ 变量(Variable),对象(Object),实例(Instance)变量: 变量分配在线程栈上。 变量可以是值类型,也可以是引用类型。 当变量是引用类型时,包含了对对象的引用(内存地址),也叫做"对象引用"。对象: 对类、接口、委托和数组等的一个抽象描述
阅读全文
posted @ 2014-03-13 23:08
Darren Ji
阅读(432)
推荐(0)
摘要:
报错:Missing type map configuration or unsupported mapping □ 背景 当把View Model转换成Domain Model保存的时候,发生在AutoMapper的错误。 □ 分析 1、在派生于AutoMapper的Profile的类中已经建立映射: Mapper.CreateMap(); 2、也已经初始化派生于Pr...
阅读全文
posted @ 2014-03-12 23:06
Darren Ji
阅读(14335)
推荐(3)
摘要:
在MVC中,当涉及到强类型编辑页,如果有select元素,需要根据当前Model的某个属性值,让Select的某项选中。本篇只整理思路,不涉及完整代码。□ 思路往前台视图传的类型是List,把SelectListItem选中项的Selected属性设置为true,再把该类型对象实例放到ViewBag,ViewData或Model中传递给前台视图。 通过遍历List类型对象实例□ 控制器public ActionResult SomeAction(int id){ //从数据库获取Domain Model var domainModel = ModelService.LoadEnti...
阅读全文
posted @ 2014-03-12 22:48
Darren Ji
阅读(2686)
推荐(0)