Fork me on GitHub

2013年9月9日

摘要: C#通过属性名称获取(读取)属性值的方法之前在开发一个程序,希望能够通过属性名称读取出属性值,但是由于那时候不熟悉反射,所以并没有找到合适的方法,做了不少的重复性工作啊!然后今天我再上网找了找,被我找到了,跟大家分享一下。其实原理并不复杂,就是通过反射利用属性名称去获取属性值,以前对反射不熟悉,所以没想到啊~不得不说反射是一种很强大的技术。。下面给代码,希望能帮到有需要的人。 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace P. 阅读全文
posted @ 2013-09-09 23:03 HackerVirus 阅读(843) 评论(0) 推荐(0)
摘要: 搭建一个完整的Java开发环境作为一个Java程序员,配置一个java开发环境是必备的技能,今天给广大菜鸟初学者补上一课。环境的配置,大概就分三个1,JDK 2,Tomcat(或者其他的)3,eclipse(或者myeclipse)。下面我们就一个一个慢慢配置。配置JDK编写Java程序需要建立Java开发环境,其中Sun的Java SDK是必不可少的。可以去Sun的官网下载,在此不再赘述。安装好SDK后需要简单配置一下环境变量:1.右击我的电脑,选择属性(或者按 “Win+Pause Break”)2.选择高级3.选择环境变量(系统变量)以下变量名如果没有就点新建,有就点编辑(两个路径之间用 阅读全文
posted @ 2013-09-09 22:57 HackerVirus 阅读(459) 评论(0) 推荐(0)
摘要: XSD实例在前面的XSD笔记中,基本上是以数据类型为主线来写的,而在我的实际开发过程中,是先设计好了XML的结构(元素、属性),并写好了一份示例,然后再反过来写XSD文件(在工具生成的基础上修改),也就是说,是以XML结构为主线的。而我在学习XSD的时候,则是以能否看懂spring-beans-3.2.xsd这个文件来检测自己,我的想法很简单,这个文件已经够复杂——对我来说——如果能够看懂这个文件,那基本上已经够我用的了,倘若实际开发的时候遇到超出这个范围的,那到时候再找相关资料学习也不晚。一、为XML结构编写相应XSD片段1、定义一个没有属性也没有内容的元素——没有属性的空元素: ... 阅读全文
posted @ 2013-09-09 22:56 HackerVirus 阅读(932) 评论(0) 推荐(0)
摘要: 编写高质量的Objective-C代码点标记语法属性和幂等方法(多次调用和一次调用返回的结果相同)使用点标记语法访问,其他的情况使用方括号标记语法。良好的风格:view.backgroundColor = [UIColor orangeColor];[UIApplication sharedApplication].delegate;不良的风格:[view setBackgroundColor:[UIColor orangeColor]];UIApplication.sharedApplication.delegate;间距二元运算符和参数之间需要放置一个空格,一元运算符、强制类型转换和参数之 阅读全文
posted @ 2013-09-09 22:54 HackerVirus 阅读(185) 评论(0) 推荐(0)
摘要: C#表达式树的初步了解在很早以前就听说过表达式树了,但并没有去了解它。虽然自己用过linq to sql和linq to entity,但也就用着就用着,并没有去深究c#代码怎么会生成sql代码而不是IL。废话不多说了,开写吧!.net里表达式树核心概念就是:将代码作为数据。它将一些代码表示为一个对象树,树中的每个节点本身都是一个表达式,不同的表达式类型代表能在代码中执行不同操作:二元操作,一元操作,方法调用等等。 System.Linq.Expressions命名空间包含了代表表达式的各个类。所有的表达式类都从Expression类派生,Expression是个抽象类,主要包含的是一些静态. 阅读全文
posted @ 2013-09-09 22:53 HackerVirus 阅读(207) 评论(0) 推荐(0)
摘要: 尽量不用char*作为hash_map的keyPosted on2013-09-09 21:21Springlie阅读(83) 评论(0)编辑收藏引子:同事前几天用hash_map时发现一些问题。当时的场景是有一些字符串char*,要去对应某种类型的对象。同事的做法是:尝试用char*作为key进行hash。编译通过,但运行时不正常,insert操作可以成功,但find操作基本都失败改用string将原字符串包装后作为key进行hash。编译时不能通过google后,用string作key,并添加了一个template struct hash的仿函数作为hash_map的构造参数。编译通过,运 阅读全文
posted @ 2013-09-09 22:51 HackerVirus 阅读(1218) 评论(0) 推荐(1)
摘要: 工厂方法模式一、引言 在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以解决简单工厂模式中存在的这个问题,下面就具体看看工厂模式是如何解决该问题的。二、工厂方法模式的实现 工厂方法模式之所以可以解决简单工厂的模式,是因为它的实现把具体产品的创建推迟到子类中,此时工厂类不再负责所有产品的创建,而只是给出具体工厂必须实现的接口,这样工厂方法模式就可以允许系统不修改工厂类逻辑的情况下来添加新产品,这样也就克服了简单工厂模式中缺点。下面看下工厂模式的具体实现代.. 阅读全文
posted @ 2013-09-09 22:50 HackerVirus 阅读(209) 评论(0) 推荐(0)
摘要: GeoHash核心解析引子 机机是个好动又好学的孩子,平日里就喜欢拿着手机地图点点按按来查询一些好玩的东西。某一天机机到北海公园游玩,肚肚饿了,于是乎打开手机地图,搜索北海公园附近的餐馆,并选了其中一家用餐。 饭饱之后机机开始反思了,地图后台如何根据自己所在位置查询来查询附近餐馆的呢?苦思冥想了半天,机机想出了个方法:计算所在位置P与北京所有餐馆的距离,然后返回距离<=1000米的餐馆。小得意了一会儿,机机发现北京的餐馆何其多啊,这样计算不得了,于是想了,既然知道经纬度了,那它应该知道自己在西城区,那应该计算所在位置P与西城区所有餐馆的距离啊,机机运用了递归的思想,想到了西城区也很多餐馆 阅读全文
posted @ 2013-09-09 22:48 HackerVirus 阅读(261) 评论(0) 推荐(0)
摘要: SOCKET网络编程快速上手(二)——细节问题(2)2.TCP数据包接收问题 对初学者来说,很多都会认为:客户端与服务器最终的打印数据接收或者发送条数都该是一致的,1000条发送打印,1000条接收打印,长度都为1000。但是,事实上并不是这样,发送打印基本不会有什么问题(只是一般情况,如果发生调度或者其他情况,有可能导致差别,因此也要注意封装),接收打印却不是固定的,下面是测试代码:测试客户端程序:#include #include #include #include #include #include #include #include #define PORT 1234#... 阅读全文
posted @ 2013-09-09 18:20 HackerVirus 阅读(202) 评论(0) 推荐(0)
摘要: 日志模块对于一个系统来说,日志模块是必不可少的,它能给后面系统的维护和bug的修复,带来极大的方便。.net的日志模块有很多,比较流行的有Log4Net,NLog,还有微软企业库的日志模块,我采用的是Log4Net,1、接口 由于日志是所有模块都要用到的,因此在核心模块(Core)中实现,为了解耦,自定义一个日志接口ILogger ,参照Log4Net的日志分级,也分为5级,每一级别有1-2个方法, 代码如下。/// /// 日志操作 /// public interface ILogger { /// /// 写日志 日志级别为Deb... 阅读全文
posted @ 2013-09-09 18:19 HackerVirus 阅读(397) 评论(0) 推荐(0)