存档

‘其他随笔’ 分类的存档

Win7/Vista高级用户必备的右键菜单Take back my Ownership!

2009年12月6日

从Vista开始,Windows的权限控制就更为严格了,微软还很自豪地引入了UAC的功能。但结果却是让更多人讨厌这个系统(相信很多人都像我一样为了图省事直接把UAC关了)。Win7在权限控制上相比Vista稍微松了一点,但还是经常会出现很脑残的行为。

我曾经在整理电脑上的文件的时候,想删除某个软件的安装目录,但是却弹出一个窗口,提示我“此操作需要提供管理员权限”。但是窗口上只有一个“重试”和“取消”的按钮,你点重试吧,他会提示你一样的问题…

Kevin Yang 其他随笔 , , , , ,

Google Wave为什么这么火

2009年11月14日

Google Wave是Google目前力推的一个产品,老在很多地方看到有关Wave的介绍,无奈Wave采用的是和当年Gmail一样的邀请策略,除非有人邀请你,否则你通过注册申请的方式,需要等待很长一段时间才能生效。国庆的时候很幸运的我的申请很快就被批准了,还获得了20个邀请名额,开始投身Wave试用大军。

之前看Google IO大会上对Wave铺天盖地的介绍,觉得Google这次推的概念确实很不错。

如果电子邮件不是在30年前发明的,而是今…

Kevin Yang 其他随笔, 生活网志 , , , , , ,

慎用类型强制转换

2009年11月12日

类型转换是我们写代码经常需要打交道的事情,C#中类型转换有两种常见的形式:

(BaseClass)obj

obj as BaseClass

同时,Convert类也提供了很多常用类型的转换接口。

我接下来要说的是第一种转换形式。

当使用第一种转换形式的时候,要求obj是null,或者是一个BaseClass类或其派生类实例。否则转换会抛出异常(使用后一种形式则返回null)。这倒好理解,但是对于简单类型,就比较容易出错了。

object obj = 2;
do…

Kevin Yang 其他随笔 ,

C#中Readonly和const的区别

2009年11月12日

这个问题其实很常识。写代码的时候突然想到的,作此备忘。

const和readonly这两个关键字都是用来表示常量,只不过标记为Readonly的变量可以在构造函数中动态赋值,const需要在变量声明的时候就初始化;如果将这两种常量放到单独的动态链接库中,然后编译整个项目,则应用程序对于readonly变量,是每次都从动态链接库中读取最新的常量值,而对于const变量是在编译的时候就写死到应用程序代码中了(我不知道这是不是编译器优化行为,反…

Kevin Yang 其他随笔 , , , ,

DotNet中未退订事件引起的内存泄露问题

2009年11月12日

今天在InfoQ上看到一篇文章处理.NET中的内存泄露,里头提到说DotNet内存泄露的几种常见情况,

  • 使用静态引用
  • 未退订的事件-作者认为这是最常见的内存泄漏原因
  • 未退订的静态事件
  • 未调用Dispose方法
  • 使用不彻底的Dispose方法
  • 在Windows Forms中对BindingSource的误用
  • 未在WorkItem/CAB上调用Remove

当时对于第二点,“未退订事件”引起的内存泄露不是很理解。后来仔细分析了一下,又参考了MSDN上关于事件…

Kevin Yang 其他随笔 , , , ,

解决Wordpress自动将半角替换成全角的问题

2009年10月27日

今天在看自己写的Url编解码文章的时候,发现原本半角的字符全变成全角字符了。还以为是我笔误,在编辑面板中查看的时候,发现确实是半角字符。上网搜了一下,发现wordpress是会自动将半角字符自动输出为全角字符,不知道是出于什么原因。无怪乎以前逛别人博客的时候发现别人贴的代码总是带有全角字符,很不舒服,原来是这么回事。

网上倒是有插件Quotmarks Replacer可以解决这个问题,但是不想再整那么多插件了,麻烦。有人提供了更简单的办法,…

Kevin Yang 其他随笔 ,