为什么System.Attribute的GetHashCode方法需要如此设计?
昨天我在实现《通过扩展改善ASP.NET MVC的验证机制[使用篇]》的时候为了Attribute 的一个小问题后耗费了大半天的精力,虽然最终找到了问题的症结并解决了问题,但是我依然不知道微软如此设计的目的何在。闲话少说,我们先来演示一下我具体遇到的问题如何发生的。 目录: 一、问题重现 二、通过A...
用WPF+MongoDB开发房产信息收集器(3)——MongoDB入门
距离上一篇文字过去已经很久了。一方面是工作有点忙,另外也是遇到点问题,到现在也没有解决。这个问题我会在文章的结尾在提出来,现在先进入这篇文章的主题吧——MongoDB入门。由于我完全是一个彻彻底底的初学者,所以写的都只是非常非常粗浅的入门内容,各位看官不要鄙视~~~~数据库安装数据库的安装,网上到处...
梦想成真 XNA (10) - 3D 模型的碰撞检测
[源码下载]梦想成真 XNA (10) - 3D模型的碰撞检测作者:webabcd介绍XNA:3D模型的碰撞检测。通过包围球(Bounding Sphere)算法实现碰撞检测示例演示 3D 模型的碰撞检测,“上下左右”键控制 3D 模型的旋转,“LeftShift”和“LeftControl”键控制...
梦想成真 XNA (9) - 3D 模型
[源码下载]梦想成真 XNA (9) - 3D 模型作者:webabcd介绍XNA:3D 模型。通过键盘的“上下左右”键旋转 3D 模型示例绘制一个 3D 模型,并通过“上下左右”键控制它的旋转(按键盘 R 键加载此 Demo)3D/3DModel/RotationDirection.csnames...
梦想成真 XNA (8) - 3D 基础
[源码下载]梦想成真 XNA (8) - 3D 基础作者:webabcd介绍XNA:3D 基础在 3D 坐标中绘制一个三角形让一个图片纹理在 3D 世界中动起来示例1、在一个 3D 坐标中绘制一个三角形(按键盘 P 键加载此 Demo)3D/Basic/Demo.cs/* * XNA 的 3D 坐标...
梦想成真 XNA (7) - 碰撞检测
[源码下载]梦想成真 XNA (7) - 碰撞检测作者:webabcd介绍XNA:碰撞检测通过 AABB(Axis Aligned Bounding Box)实现碰撞检测算法通过 Rectangle 类实现碰撞检测算法示例1、AABB 算法的 Demo(按键盘 N 键加载此 Demo)Compone...
梦想成真 XNA (6) - 声音和音效
[源码下载]梦想成真 XNA (6) - 声音和音效作者:webabcd介绍XNA: 声音和音效XACT -Cross-platform Audio Creation Tool,跨平台音效制作工具SoundEffect -音效对象MediaPlayer - 媒体播放器对象;Song -音乐对象示例1...
梦想成真 XNA (5) - 通过键盘、鼠标、手柄控制精灵
[源码下载]梦想成真 XNA (5) - 通过键盘、鼠标、手柄控制精灵作者:webabcd介绍XNA: 控制精灵的移动键盘控制鼠标控制手柄控制示例1、通过键盘控制精灵移动的 Demo(按键盘 H 键加载此 Demo)Component/Control/KeyboardControl.csusing ...
梦想成真 XNA (4) - 动画
[源码下载]梦想成真 XNA (4) - 动画作者:webabcd介绍XNA: 动画示例1、让精灵运动起来的 Demo(按键盘 F 键加载此 Demo)Component/Sprite/Animation.csusing System;using System.Collections.Generic...
梦想成真 XNA (3) - SpriteSortMode, BlendState
[源码下载]梦想成真 XNA (3) - SpriteSortMode, BlendState作者:webabcd介绍XNA: SpriteSortMode 和 BlendStateSpriteSortMode - 精灵在游戏窗口上绘制的排序方式,默认值为:SpriteSortMode.Deferr...
梦想成真 XNA (2) - 绘制精灵,绘制文字
[源码下载]梦想成真 XNA (2) - 绘制精灵,绘制文字作者:webabcd介绍XNA: 绘制一个精灵,绘制一段文字示例1、绘制精灵的 Demo(按键盘 B 键加载此 Demo)Component/Sprite/DrawDemo.csusing System;using System.Colle...
梦想成真 XNA (1) - Hello XNA
[源码下载]梦想成真 XNA (1) - Hello XNA作者:webabcd介绍XNA: 从 Hello XNA 开始示例1、为了方便在一个 XNA 程序里演示各种知识点,所以写了如下代码,通过键盘按键加载对应的 DemoGame1.cs/* * 项目上单击右键 -> 属性 -> X...
精进不休 .NET 4.0 (9) - ADO.NET Entity Framework 4.1 之 Code First
[索引页][源码下载]精进不休 .NET 4.0 (9) - ADO.NET Entity Framework 4.1 之 Code First作者:webabcd介绍ADO.NET Entity Framework 4.1 的新增功能:Code First示例Web.config<?xml ...
一个关于反序列化的小问题
大家都知道,我们具有三种定义可序列化类型的方式:在类型上应用SerializableAttribute特性;应用DataContractAttribute/DataMemberAttribute特性和实现ISerializable接口。当你通过继承一个现有的类来定义你需要被序列化的类,如果这个父类实...
关于Expression Tree和IL Emit的所谓的"性能差别"
昨天写了《三种属性操作性能比较》,有个网友写信问我一个问题:从性能上看,Expression Tree和IL Emit孰优孰劣?虽然我在回信中作了简单的回答,但不知道这个网友是否懂我的意思。反正今天呆在家里也没事儿,干脆再就这个话题再写一篇文章。 目录: 一、Expression Tree和IL E...
三种属性操作性能比较:PropertyInfo + Expression Tree + Delegate.CreateDelegate
在《上篇》中,我比较了三种属性操作的性能:直接操作,单纯通过PropertyInfo反射和IL Emit。本篇继续讨论这个话题,我们再引入另外两种额外的属性操作方式:Expression Tree(这和IL Emit基本一致)和通过Delegate的静态方法CreateDelegate创建相应的委托...
晚绑定场景下对象属性赋值和取值可以不需要PropertyInfo
在《一句代码实现批量数据绑定》中,我通过界面控件ID与作为数据源的实体属性名之间的映射实现了批量数据绑定。由于里面频繁涉及对属性的反射——通过反射从实体对象中获取某个属性值;通过反射为控件的某个属性赋值,所以这不是一种高效的操作方式。为了提升性能,我通过IL Emit的方式创建了一个Property...
谈谈Nullable<T>的类型转换问题
本篇文章讨论可空值类型(Nullable<T>)的转换,却确地说是如何将一种类型的值对象转换成相应的可空值。这来源于今天我们的一个成员遇到的一个小问题,我经过一些整理写了这篇文章。虽然没有什么技术含量可言,也希望对某些读者带来帮助。 目录 一、四种典型的值类型转换方式 二、当类型转换遭遇...
自己动手查看数据库中的不同粒度锁
下面的内容全部是自己发出的一封工作信件。起由是公司的DB组建议大家在使用TransactionScope的时候,尽量不要使用默认的隔离级别(Serilizable),而应使用ReadCommitted(这正好是Sql server中事物的默认隔离级别)。我对这个建议的内容,做了一些小小的研究,回信如...
using "code coverage coloring" to help debuging
When I tried to investigate a defect, usually the first thing that I want to verify is the “runtime” execution flow. And if the “runtime” flow didn’t ...
