2008年12月25日

 

今天写完年终总结后,无所事事,便翻阅MSDN起来,无意中点到了c#关键字页面,想到以前看LINQ的一些学习资料的时候,对 partial 这个没有认识清楚,所以,在此写下本文,无聊的产物吧。

 

(电脑里面 C:\Program Files\Microsoft Visual Studio 9.0\Samples\2052下,有个压缩文件,CSharpSamples.zip,解压缩后应该有两个文件,分别是LanguageSamples和LinqSamples。LinqSamples讲了一些很基础的LINQ的知识。)

言归正传,先举个例子:

partial关键字

 

相信使用过vs2005的都见过partial这个关键字,呵呵,也就不具体说了在什么情况下见得到了。。。。。

 

分布类型,可以使得一个类,可以定义在不同的文件中(应该是指在同一个程序集下的不同文件中,没测试过。。。。。。)为什么会有这个关键字以及其好处,也就不多说了,一个最简单的,页面和代码的隔离.....要想知道更多的相关知识,可以查看MSDN帮助文档的

ms-help://MS.MSDNQTR.v90.chs/dv_csref/html/804cecb7-62db-4f97-a99f-60975bd59fa1.htm

 

因为对MSDN上的一些语言没有搞的很明白,所以记下如下的内容:

 

  • 分部方法声明必须以上下文关键字 partial 开头,并且方法必须返回 void

  • 分部方法可以有 ref 参数,但不能有 out 参数。

  • 分部方法为隐式 private 方法,因此不能为 virtual 方法。

  • 分部方法不能为 extern 方法,因为主体的存在确定了方法是在定义还是在实现。

  • 分部方法可以有 staticunsafe 修饰符。

  • 分部方法可以为泛型的。约束将放在定义分部方法声明上,但也可以选择重复放在实现声明上。参数和类型参数名称在实现声明和定义声明中不必相同。

  • 不能将委托转换为分部方法。

 第一:分部方法为什么是private而不会是public等,同时为什么必须是void?

           分部方法由于有可能只存在方法的定义没有方法的实现,如果定义为public等,则表明外部可以调用,那么外部程序实现方法的调用后,则会出现问题的。同时由于编译器在编译的时候,会移除掉没有实现的分部方法和调用。。。 

 

代续。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

 

 

 

posted on 2008-12-25 22:23  颜昌钢  阅读(410)  评论(0编辑  收藏  举报