通过Visual Studio 2008新创建一个WPF Application项目,在没有编译的情况下打开Window1.xaml.cs。鼠标右键单击InitializeComponent();这一代码行,选择Go To Definition菜单项。我们会看到其定义在一个叫做Window1.g.i.cs的文件之中。
对WPF比较熟悉的程序员知道:在编译WPF程序的时候,MsBuild通过调用Markup Compiler将Window1.xaml编译成为一个baml文件和window1.g.cs文件。这里的g的含义是“生成的”(Generated)意思。
可是Window1.g.i.cs文件呢?
这是只有在Visual Studio编程环境下才能看到的一个文件,g的含义同上,而 i 则是“智能感知”(Intellisence)的意思。为了能够让用户更方便的使用Intellisense,Visual Studio生成并且使用了Window1.g.i.cs文件。
如果在一次编译之后再Go To Definition,您就会发现这次打开的是Window1.g.cs文件。当然在编程的绝大多数时间里面,Window1.g.i.cs文件的使用率要高的多。
----
二零零八,新年快乐!
有一种记忆单词的方法是谐音,就是根据其读音近似到汉语的某个词组合,而这个词组合可以被联想引申到单词的本义。已经有这样的书籍。
一个例子。Bauble读起来像"抱吧",这就能引申到单词的本义(美观而无价值的饰物),因为正是因为这些美观而无价值的饰物不值钱,您才可以随便拿,想抱多少就抱多少。
对谐音,除了对很少数的单词有些许效果,往往不能在一段时间后奏效。因为下一次看见Bauble想到"抱吧",就有可能觉得这是喜欢的毛绒玩具所以你想去抱抱。
本文谈谈另外一个单词,Casino 赌场。看看下面这段话是否有助于记忆:
据传,很久以前,移民到美国的福建民工,拿到一点微薄的工资,便在无聊之际,聚众赌博,试试运气。每次开局,都会嚷嚷:“开始了! 开始了!”想不到,阴差阳错地搭给英语一个现代词汇。
如果说这是一个谐音记忆法的例子,我们可以觉得有趣。但遗憾的是,这是一篇正在互联网站上传播的一篇题为英语借走的“十个中国词”中第9个字。也就是说,从词源学(Etymology)的角度,Casino来自中文。
这就很奇怪了。
一个语言从别的语言之中借用单词的确是很常见的现象,但是那往往是在本国语言并没有能够精确表达某个概念的时候。难道在移民到美国的福建民工聚众赌博之前,英语国家之中没有聚众赌博的概念和场所?
这篇文章目前刊登在以英语培训起家的新东方教育科技集团(Nasdaq: EDU)网站的首页头条。因为网站之间以讹传讹的现象越来越严重,您一定可以通过搜索引擎永远找到这篇文章。
其实,Casino来自意大利语的casa. Casino最早在1744年进入书面英语,比美国建国还要早。只要肯花一点点时间,这个错误的信息就不会得到这样广泛的传播。
在英语里面找到10个中国词其实非常容易。本文的关键点是要“拣10个真正有中国气质、代表华夏气派、并影响全球当代生活的”单词。Casino居然能符合此标准?
本文只指出10个单词中的一个明显错误,这并不意味着其他9个单词就完全正确。
虽然resgen.exe在.NET框架2.0下已经有了/publicClass的选项,Visual Studio 2005自动生成的代码文件只能是internal.
在Visual Studio 2008下,程序员可以选择internal或者public,如下图所示:

----
祝您节日快乐!