自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 iOS防止消息转发的crash

iOS防止消息转发的crashiOS开发时经常会遇到消息转发的crash,控制到回输出类似下面的提示:-[__NSCFNumber lowercaseString]:unrecognized selector sent to instance 0x87*** Terminating app due to uncaught exception 'NSInvalidArgumentException'

2016-01-09 20:25:46 748

转载 未越狱ios设备的抓包方法

Remote Virtual Interface在iOS 5以后增加了RVI(Remote Virtual Interface),它让我们使用OS X来抓取ios device上数据包。基本的方法就是把设备通过USB连上mac上。然后为这台设备安装RVI,这个虚拟的在Mac上的网卡,就代表这台ios设备的使用网卡。然后在mac上跑抓包的工具,定位到这个虚拟的网卡上,来抓包。(1

2014-04-24 22:33:08 6299

转载 iOS系统网络抓包方法

在进行iOS开发过程中,经常会遇到各种各样的网络访问问题,以前苦于没有抓包工具,很多网络问题解决起来很痛苦。现在终于好了,本文提供两种方式进行网络抓包: 1. 网络共享 + 可视化抓包工具基本原理原理比较简单,ios设备通过代理方式共享连接mac电脑的无线网卡,使用抓包工具抓包,然后进行分析(我们推荐使用Wireshark,在MAC系统上也可以使用Paros工具)。

2014-04-24 22:05:26 818

转载 WP8的async和await

内容预告:awaitable的对象如何工作并行处理的新方法用async替代BackgroundWorkder了解为什么不再使用线程和线程池异步函数与基于任务的编程模型(TPM==Task Programming Model):WP7.1用.NET4.0的模式支持异步编程:BeginXYZ,EndXYZ函数,如HttpWebRequest.BeginGetResponse

2014-04-07 11:00:03 592

转载 Mvvm Light Toolkit for wpf/silverlight系列之Command和Events

事件是WPF/SL应用程序中UI与后台代码进行交互的最主要方式,与传统方式不同,mvvm中主要通过绑定到命令来进行事件的处理,因此要了解mvvm中处理事件的方式,就必须先熟悉命令的工作原理。  一、RelayCommand命令WPF/SL命令是通过实现 ICommand 接口创建的。 ICommand 公开两个方法(Execute 及 CanExecute)和一

2014-04-02 19:37:41 801

转载 SuppressMessage

通常最好指出警告不适用于代码,这样小组成员可以知道代码已经过检查并已决定取消警告。源代码中禁止显示 (ISS) 功能允许开发人员将取消警告的代码放在靠近警告本身的位置。“源代码中禁止显示”概述检查代码之后,您可能确定代码是正确的。也可能是以下情况,即某些冲突的优先级较低,因此不会在当前的开发周期中修复。无论出于何种原因,以下操作通常是有用的,即指出相应警告不适用,以使小组成

2014-03-27 12:37:46 8371

原创 使用泛型

1 ,泛型不仅仅在集合这个上下文中有用武之地,还能够用于很多其他场合,例如创建接口、事件处理程序以及常用算法等。 2 ,c#编译器根据c#代码生成微软中间语言表示的泛型类型定义。而JIT编译器则会把泛型类型定义与一系列的类型参数组合起来,从而创建出封闭的泛型类型。CLR将在运行时同时支持上述两种概念。 3 ,使用多个引用类型参数的泛型类型并不会影响程序的内存占用,因为其被JIT编译后只生成一份代码

2012-03-28 07:53:29 434

原创 不要为基类或接口创建泛型的特殊实现

引入泛型方法将让编译器对重载的解析变得非常复杂。每个泛型方法的类型参数都可以任意替换。如果稍有疏忽,程序的行为将变得极其古怪。在创意泛型类型或方法时,必须保证让使用者能够尽可能地理解你的设计意图,安全的使用代码。因此需要非常小心对重载的解析,还要了解哪个方法将会更好地匹配开发者的原本意图。 1,对于一个派生于MyBase的对象来说,WriteMessage《T》(T obj)要比WriteMess

2012-03-28 07:53:12 1000

原创 尽可能使用泛型方法,除非需要将类型参数用于实例的字段

如果你需要类型级别的数据成员,特别是涉及类型参数的成员变量,那么则使用泛型类。 通过在非泛型类中创建一个总的泛型方法来支持若干个不同的特定方法。类本身并没有在其私有字段中使用到T,而仅在其公共API中将T作为参数。在方法参数中使用不同的类型并不需要重新创建一个新的类型。 显然,并不是所有的泛型算法都支持用泛型方法代替泛型类。不过其中确有一些简单的规范可以遵循。如下的两种情况中必须使用泛型类。第一,

2012-03-28 07:52:55 618

原创 尽可能地减小锁对象的作用范围

在编写并发程序时,我们需要选择最合适的同步原语。应用程序中对同步原语时用得越多,也就越难以避免发生死锁等并发上得错误。这是个规模的问题:需要检查得地方越多,也就越难发现某个特定得错误。 在面向对象编程中,我们使用私有成员变量来尽可能减少发生状态变化的位置的数量。在并发程序中,同样也应该尽可能地减小用来实现同步对象的作用范围。 我们需要改变锁定的策略,你可以采用下面将要介绍的三种方法。 第一种方法是

2012-03-28 07:52:26 677

原创 确保0为值类型的有效状态

系统会将值类型的所有实例初始化为0.我们没有办法阻止用户创建“字段全部为0”的值类型实例。如果可能的话,我们应该将“字段全部为0”作为类型的默认值。作为一种特殊情况,被用做位标记的枚举类型,应该确保0的意义为“不包括所有其他标记的情况”。

2011-11-25 03:59:07 369

原创 明辨值类型和引用类型的使用场合

1、值类型与引用类型的选择依赖于我们期望将来的客户程序如何使用我们的类型。值类型不支持多态,比较适合存储供应用程序操作的数据。应用类型支持多态,应该用于定义应用程序的行为。在设计类型时,我们应该考虑类型的责任,根据期望的责任,我们才能判断创建何种类型。简而言之,结构用于存储数据,类用于定义行为。2、将类型设计为值类型还是引用类型是一个非常重要的决定。如果刚开始没有确定好,之后再将值类型改变为引

2011-11-19 11:28:48 346

转载 介绍C#解析HTML的两种方法

在搜索引擎的开发中,我们需要对网页的Html内容进行检索,难免的就需要对Html进行解析。拆分每一个节点并且获取节点间的内容。此文介绍两种C#解析Html的方法。第一种方法:用System.Net.WebClient下载Web Page存到本地文件或者String中,用正则表达式来分析。这个方法可以用在Web Crawler等需要分析很多Web Page的应用中。估计这也是大家最直接,

2011-11-15 05:25:37 555

原创 总是提供ToString()方法

1原因类型的字符串表示非常有用,可以在很多地方向用户显示对象的有关信息,例如在windows forms上、web forms上、控制台输出窗口中,以及调试环境中。为此,我们创建的每一个类型都因该重写Object类的ToString()方法。2举例public class Customer{private string _name;private decimal _reven

2011-11-15 05:09:48 384

原创 使用Conditional特性代替#if条件编译

1原因#if/#else条件编译常用来由同一份源代码生成不同的结果文件,最常见的有 debug版和release版。但是这些工具在具体的应用中并不是非常得心应手,因为它们它容易被滥用了,使用它们创建的代码通常都比较难理解,且难以调试。2解决方法C#为此提出了一种更好的选择:Conditional特性。使用Conditional特性可以将函数隔离出来,使得它们只有在定义了某些环境变量后才

2011-11-14 05:06:31 879

转载 C# xpath解析XML文件

先来看看解析xml文件的方法都有哪些吧,可以帮助大家对这个问题有个概要的了解。在程序中访问并操作XML文件一般有两种模型:流模型和DOM(文档对象模型)。流模型中有两种变体——“推”模型和“拉”模型。  “推”模型也就是常说的SAX,SAX是一种靠事件驱动的模型。它每发现一个节点就用“推”模型引发一个事件,而我们必须编写这些事件的处理程序,很麻烦。.NET中使用的是基于“拉”模型的实现

2011-11-01 05:13:23 2514

转载 智能指针

auto_ptr 类可以用于管理由 new 分配的单个对象,但是无法管理动态分配的数组(我们通常不会使用数组,而是使用vector 代替数组)。auto_ptr 在拷贝和赋值的时候有不寻常的行为,因此 auto_ptr 不能被保存在 stl的容器中。当 auto_ptr 离开了自

2011-08-22 10:19:26 383

转载 volatile变量

一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:    1). 并行设备的

2011-08-21 06:32:42 333

翻译 symbian 使用 sokects API

1介绍      这篇文章介绍了symbian 系统中的 sockets API. 目的是让开发者使用socket 去完成应用间的通讯,这篇文章提供了理论上的概述和实际的代码示例。 其中包括:socket通讯相关组件的介绍;socket架构的介绍和主要

2011-04-01 16:12:00 699

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除