浅谈partial class的理解

合集下载

浅谈品牌翻译(Translation of Brand Names)

浅谈品牌翻译(Translation of Brand Names)

ON TRANSLA TION OF BRAND NAMES浅谈品牌翻译A thesis paper submitted in partial fulfillment of the requirementsFor the degree ofBachelor of Arts in EnglishABSTRACTThe 21st century is the age of economic globalization. The export and import of domestic and overseas products become much more frequent. Therefore the translation of brand names shows its great importance in helping the transnational companies to open new markets on foreign lands. A successful version will, to a large extent, improve the brand image among customers. Though many companies have realized the significance of brand name translation, some problems still exist today like abusing pinyin, over-complexity and neglecting cultural association. To avoid these mistakes, translators are required to get familiar with the basic theories in translating brand names. Generally speaking, there hasn’t been systematic study on translation of brand names. But some scholars like Nida and Newmark have ever established their theories in this area. On the basis of their theories, some main translating methods are introduced in this article. They are transliteration, literal translation, free translation, combining transliteration and free translation, and transference. All of them have their own advantages and disadvantages, so translators should make cautious use of them when translating brand names. To reflect the best effect of advertising, the translation should stick to principles of concision, equivalence and association. At last, the conclusion is reached that the standard of how good the translation is lies in how successfully the version achieves the advertising function. So with the purpose of attracting customers, translators should produce the most suitable versions by studying customers’ psychology and aesthetic appreciation.Key Words: Globalization, functionalism, problems, practical translation, equivalence摘要二十一世纪是全球经济一体化的时代,国内外商品的进出口日益频繁。

基于经验模态分解法的变压器局部放电去噪方法研究

基于经验模态分解法的变压器局部放电去噪方法研究

(1)
h1 = X( t) - m1
(2)
X( t) 与均值 m 的差记为 h1 ꎬ得:
多次分解ꎬ满足 IMF 条件时ꎬ输出 IMF1ꎬ记作
C1 ꎮ 把 C1 从 X( t) 中剥离ꎬ得到舍去高频分量的信
号 r1 ꎬ得:
r1 = X( t) - C1
(3)
将 r1 作为下一次分解的原始信号ꎬ重复分解ꎬ
如图 7 所示ꎮ 将含噪声较多的 IMF1 剔除后进行重
构去噪ꎬ结果如图 8 所示ꎮ
4 2 CEEMDAN 阈值去噪仿真分析
略有提升ꎬ但是依然使用舍去 IMF 分量的方法ꎬ信
号的完整度不够好ꎮ 因此ꎬ本文使用 CEEMDAN 方
法对信号进行自适应分解ꎬ然后对每个 IMF 设定阈
值ꎬ进行阈值去噪ꎮ
频信号的重构方法ꎬ信号保留不完整ꎬ且存在模态混叠ꎮ 本文采用单一 EMD、EEMD、CEEMD 以及 CEEM ̄
DAN 方法对局部放电信号去噪仿真分析ꎬ部分解决了模态混叠问题ꎬ但单一分解方法去噪效果差ꎮ 因此ꎬ本
文进一步改进ꎬ采用 CEEMDAN 阈值的局部放电去噪方法ꎬ通过仿真数据分析ꎬ减少了重构误差ꎬ提高信噪
68
« 电气开关» (2021. No. 6)
文章编号:1004 - 289X(2021)06 - 0068 - 04
基于经验模态分解法的变压器局部放电
去噪方法研究
宫成明ꎬ厉伟
( 沈阳工业大学 电气工程学院ꎬ辽宁 沈阳 110870)
摘 要:复杂噪声环境下ꎬ提取变压器的局部放电信号是对其运行状态在线检测的关键ꎮ EMD 舍高频ꎬ留低
[ J] . 砖瓦世界ꎬ2019(12) :77.
[3] 毛伟思. 分析输配电及用电工程线路安全运行的问题及其技

教学精品-3天学透Actionscript之欧阳术创编

教学精品-3天学透Actionscript之欧阳术创编

第一天:什么是Actionscript?1.类的由来1.1 C 语言中的结构体这部分属于历史问题,与技术无关,了解历史可以让我们更好地掌控现在和将来。

C 语言中的结构体struct 可以说是类的最原始的雏形。

只有int, float, char 这些基本数据类型是不敷的,有时需要用不合的数据类型组合成一个有机的整体来使用。

例如一个学生有学号和姓名就可以界说一个Student 的结构体:struct Student {int id;char[20] name;} student;main() {// 可以使用“对象名.属性” 的方法来操纵数据student.id = 5; = “ZhangSan”;}1.2 从结构体到类的演化(C —— C++)C++ 首次允许在结构体中界说成员函数!那么再将struct 关键字换成class 不就是我们现在所看到的类的形态了吗?class Student {private:int id;char[20] name;public:void gotoSchool() {}}C++ 最初的名字叫做“C with class”(带类的C),经过长时间的成长,最终敲定将其命名为C++,“++”暗示加一操纵,代表它比C 语言更进步,更高级。

面向过程的编程就是在处理一个个函数,而现在的面向对象编程处理是函数加数据,形式上就这么点儿不同。

也许刚刚接触时它时会感到有些困难,这很正常。

一旦你真正了解它,那你一定会爱上它。

所以,请年夜家不要畏惧,技术永远向着更便利,更简单,更高效的标的目的成长,而不会向越来越难,越来越庞杂成长。

对面向对象法度设计(OOP)而言,代表着越来越接近人类的自然语言,越来越接近人类的思维,因此一切城市变得越来越简单。

从结构体到类的演变过程中我们看到,类中是可以界说函数的。

因此,引出了面向对象三年夜特性之一,封装。

2.封装(Encapsulation)2.1 封装的概念封装的界说:把过程和数据包抄起来,对数据的拜访只能通过已界说的界面。

走出冷冻禽肉生产中预冷要求的误区——浅谈冷冻禽肉在分割前必须达到冷却要求的合理性

走出冷冻禽肉生产中预冷要求的误区——浅谈冷冻禽肉在分割前必须达到冷却要求的合理性

走出冷冻禽肉生产中预冷要求的误区——浅谈冷冻禽肉在分割前必须达到冷却要求的合理性杨林;吴伟;王晓文;刘星火【摘要】根据欧美法规要求,禽肉产品在进入流通领域前应达到冷冻状态,并没有规定冷冻前必须首先达到冷却温度(4℃).而目前我国多数监管部门和企业,要求冷冻禽肉生产企业在产品速冻前必须在非常有限的时限内将禽胴体温度预冷至4℃以下,即与欧美等国的要求不符,同时也与我国实际现状不适应.建议澄清预冷和冷却的概念,修订相关标准,借鉴欧盟和美国做法根据冰鲜产品和冷冻产品不同的生产工艺分别规定相应的温度、时间要求,达到欧盟和美国规定的冷却温度和时间要求.【期刊名称】《肉类工业》【年(卷),期】2016(000)005【总页数】2页(P51-52)【关键词】禽肉;冷冻;冷却;温度;时间【作者】杨林;吴伟;王晓文;刘星火【作者单位】山东济宁出入境检验检疫局山东济宁 272000;山东潍坊出入境检验检疫局山东潍坊 261000;山东聊城出入境检验检疫局山东聊城 252000;山东淄博出入境检验检疫局山东淄博 255000【正文语种】中文我国肉类标准《GB/T20094-2006屠宰和肉类加工厂企业卫生注册管理规范》中8.5温度控制规定“屠宰后胴体应立即预冷。

分割、去骨、包装时,禽肉保持4℃以下”。

根据此规定,生产冷冻禽肉的屠宰企业在屠宰后必须将禽胴体温度冷却至4℃以下之后才能实施分割、去骨、包装和冷冻等生产措施。

而目前我国冷冻禽肉屠宰生产企业在持续的生产状态下,屠宰后的禽胴体经50~60min的预冷,温度一般能够达到7~10℃,很难达到4℃的要求。

冷冻禽肉生产企业纷纷就此问题质疑预冷要求的合理性。

而业内专家普遍认为欧美等主要发达国家均有冷却达到4℃的要求,因此我国应借鉴采用预冷后胴体温度需达到4℃的规定。

笔者通过对美国和欧盟有关禽类屠宰生产加工温度要求的学习和研究,浅谈我国冷冻禽肉在生产过程中需首先达到预冷温度要求的合理性。

唐山师范学院论文格式毕业论文的格式要求(修改版)

唐山师范学院论文格式毕业论文的格式要求(修改版)

毕业论文的格式要求毕业论文一般由三部分组成:(一)正文前部分1.封面(汉语封面在前,英语封面在后)2.郑重声明3.内容摘要(中文摘要在前,英文摘要在后)4. 目录(只需英文)1.封面:汉语封面一律使用我院统一设计的毕业论文封面,封面要求用汉语书写。

英文封面的格式举例如下:The Old Man and the Sea:A Modern Fable Expressing Existentialism(Times New Roman , 小二号/三号,粗体居中)Wang Xiaoli (Times New Roman , 四号,居中,不加粗)(姓名置于标题下两行)A Graduation Thesis Submitted toForeign Languages Department of Tangshan Teachers CollegeIn Partial Fulfillment of the RequirementsFor the Degree of B. A. (4行字置于整版中央)(Times New Roman , 四号居中,不加粗)(期间空3行左右)Tutor: Jia Y anpingSpecialty: EnglishDirection: American Literature(Times New Roman , 四号,左对齐,不加粗)(之间空两行)Tangshan, Hebei ProvinceMay 2007(Times New Roman , 四号居中,不加粗)2.郑重声明郑重声明(宋体,小二)本人的毕业论文是在指导教师(导师名字可打印)指导下独立撰写完成的。

如有剽窃、抄袭、造假等违反学术道德、学术规范和侵权的行为,本人愿意承担由此产生的各种后果,直至法律责任,并愿意通过网络接受公众的监督。

特此郑重声明。

(宋体,四号字)毕业论文作者(签名):年月日作者及日期需本人亲笔签名3. 内容摘要:中英文摘要各300字(中文摘要在前,英文摘要在后,中英文摘要内容大体一致)。

situational teaching method 情景式教学法

situational teaching method  情景式教学法

Situational Teaching Method in Primary School English Teachingby陆雅琼A thesis presented to the School of English Education ofXi’an International Studies Universityin partial fulfillment of the requirementsfor the degree ofBachelor of ArtsMay 15, 2013Class: 09-5Advisor: 刘全利西安外国语大学毕业论文开题报告AcknowledgementsI’d like to take this opportunity to extend my best regards to those who have helped me with my graduate thesis.In writing this paper, I have benefited from the presence of my teachers and my classmates. They generously helped me collect materials I need and made many invaluable suggestions. I hereby extend my grateful thanks to them for their kind help, without which the paper would not have been what it it. Particularly, I am deeply indebted to Ms. Liu, my supervisor, who guided me throughout my writing of this thesis. She carefully read the whole draft and offered precious criticism. Her standards of academic excellence have made my revision exciting and gratifying experience. I also wish to sincerely thank my classmates and friends, whose brilliant ideas and perceptive observations have proved immensely constructive.“情景式教学法”在小学英语教学中的应用摘要:传统小学英语教学模式就是老师在课堂上教授,学生做一些简单的听、说、读、写以及背诵。

第1讲 CT读片基础知识

・临床医生CT读片・【编者按】 电子计算机断层摄影(CT)、磁共振成像(MRI)、数字减影血管造影(DSA)、超声波检查(US)以及同位素扫描(RI)等影像检查是21世纪的高科技的影象诊断的最新进展。

CT影象诊断具有检查简便,影像密度分辨率高,且可作人体横断面、三维图像显示,这就大大提高了疾病诊断的准确性,是影像诊断中重要的检查方法。

随着CT设备的普及CT技术已成为临床各学科医生在疾病的早期发现、诊断、治疗、判断预后以及医学科学研究中的重要手段。

为使临床医生更好地掌握CT技术、分析CT图像,本刊特邀请影像学专家谢宝教授撰写“临床医生CT读片”讲座,对读片方法、各系统正常图像和常见病、多发病的CT图像,以典型病例图片加示意图对照配以简短文字进行诠释,图文并茂,易于辨认与理解,可谓CT读片速成之方法,愿该讲座成为临床医生学习CT的良师益友。

第1讲 CT读片基础知识谢宝北京结核病胸部肿瘤研究所(101149) 前言 CT断层摄影(computed tomography,CT)为1967年英国工程师G odfley N.Hounsfield所发明,临床应用已有30余年,因为CT可提供人体断面像且密度分辨率高,给诊断提供了大量信息,使过去不易确诊的疾病得到了准确的诊断,已成为临床各学科重要检查方法。

CT诊断不仅由影像科医生结合临床作出诊断,而且临床医师更需要根据影像表现作出更加全面的诊断、治疗、判断疗效及预后等决策。

进行CT读片必须首先了解人体横断面解剖正常图像,继而掌握疾病的异常影像。

本文对各系统的正常表现以及主要疾病表现加以介绍,但更为重要的是掌握读片分析的方法和加深对各种异常影像的理解和辨认,结合临床才会作出精确的诊断,提高疾病的诊断与治疗水平。

1 CT原理与机器1.1 CT原理 CT断层装置是利用X线管,围绕人体的长轴进行旋转照射,并于对侧设置检测器(de2 tector),吸收通过人体的不同衰减的X线,并转换成电信号送入电脑,进行处理,重建成图像后在监视器上(CRT)显示出横断面图像,亦可再建构成矢状、冠状面等图像。

韩顺平java从入门到精通视频教程(全94讲)学习笔记整理(齐全)

java平台1、J2SE java开发平台标准版2、J2EE java开发平台企业版java程序需要在虚拟机上才可以运行,换言之只要有虚拟机的系统都可以运行java程序。

不同系统上要安装对应的虚拟机才可以运行java程序开发步骤1、编写源文件 (.java)2、编译源文件为类文件(.class)可用J2SE或J2EE编译3、在虚拟机上运行注释//单行注释/* */多行注释java内容介绍java编程可以分成三个方向:1、java se (j2se)桌面开发 java中的基础中的基础2、java ee (j2ee)web开发3、java me (j2me)手机开发java se课程介绍java面向对象编程(基础)java图开界面开发java数据库编程java文件io流编程java网络编程java多线程编程java ee基础1java面向对象编程--数据库编程-->java sejava 基础2html--css--javascript-->div+cssjava ee中级部分Servlet--Jsp-->mvc模式java ee高级部分Struts--Ejb--Hibernate--Spring--Ajax(ext,dw2)-->ssh框架java之父gosling1990 sun启动绿色计划1 | 4451992 创建oak语言-->java1994 gosling参加硅谷大会演示java功能,震惊世界1995 sun正式发布java第一个版本,目前最新是jdk7.0java开发工具记事本、(jcreator、jbuilder退出舞台了)、netbean、eclipse如何选择开发工具先选择记事本,对java有一定了解后再使用eclipse高级开发工具为什么呢?1、更深刻的理解java技术,培养代码感2、有利于公司面试java语言的特点1、java语言是简单的2、java语言是面向对象的3、java语言是跨平台(操作系统)的[即一次编译,到处运行]4、java是高性能的java第一个程序hello.java运行java程序要安装和配置jdkjdk是什么?1、jdk全称java dvevlopment kit中文java开发工具包2、jdk是sun公司开发的3、jdk包括jre(java runtime envirnment)java运行环境、一堆java工具和java基础的类库(类共3600左右,常用类在150个左右)4、可以在下载**开发安装jdk,用户执行需要安装jre配置JDK添加环境变量即可windows下配置jdk在计算机属性--高级设置--环境变量--添加PATH将JDK所在路径指定即可。

浅谈牛的选种与选配

2018年第4期 吉林畜牧兽医43·草食动物·CaoShi DongWu浅谈牛的选种与选配苏晓平吉林省公主岭市杨大城子镇畜牧兽医站,吉林公主岭 136100牛是一种多用途的家畜,既能使役,又可供肉用和乳用,经济价值很高。

世界上畜牧业发达的国家都十分重视养牛业的发展,我国养牛业也有几千年的历史。

目前,我国养牛业已逐步向机械化、工厂化、规模化发展。

1 牛的品种1.1 乳用品种就产奶水平而言,荷斯坦牛是目前世界上最好的奶牛品种,数量最多,分布最广,体格高大,结构匀称,皮薄骨细,皮下脂肪少,乳房特别庞大,乳动脉明显,后驱较前驱发达,侧望乳房呈楔形 ,具有典型的乳用型外貌,产奶量为各奶牛品种之冠。

1.2 肉用品种世界上主要的肉用品种,按体形的大小和产肉性能大致可分为三种。

一是小型早熟品种,主要品种有海福特牛,短角牛,安格斯牛等。

二是大型品种,代表品种有夏洛莱牛,利木赞牛,契安尼娜牛,皮埃蒙特牛等。

三是兼用品种,多为乳用兼用或肉用兼用。

主要品种有西门达尔牛,丹麦红牛,蒙贝利亚牛等。

1.3 兼用品种现在世界上比较受欢迎的兼用牛是指其产肉性能和产奶性能均可与一般的肉用牛和奶用牛相媲美。

生产中母牛作“奶牛”,公牛作“肉牛”。

我国主要引进的品种有西门塔尔和丹麦红牛,蒙贝利亚牛。

1.4 中国黄牛按分布区域和生态条件,将我国黄牛分为中原黄牛,北方黄牛和南方黄牛。

我国黄牛品种大多具有适应性强,耐粗饲,牛肉风味好等优点。

但大都属于役用或役肉兼用体形,体型较小,后驱欠发达,成熟晚,生长速度慢。

2 牛的选种种公牛的选择,主要依据外貌、系谱、旁系和后裔等几方面进行选择。

2.1 外貌选择要看其体形结构是否匀称,外形及毛色是否符合品种要求,雄性特征是否突出,有没有明显的外貌缺陷。

种公牛的外貌等级不得低于一级,种子公牛要求特级。

2.2 系谱选择种公牛的父、母必须要求是良种登记牛。

若系谱中父系或母系双方出现共同祖先,还应进一步分析近亲程度。

situational teaching method 情景式教学法

Situational Teaching Method in Primary School English Teachingby陆雅琼A thesis presented to the School of English Education ofXi’an International Studies Universityin partial fulfillment of the requirementsfor the degree ofBachelor of ArtsMay 15, 2013Class: 09-5Advisor: 刘全利西安外国语大学毕业论文开题报告AcknowledgementsI’d like to take this opportunity to extend my best regards to those who have helped me with my graduate thesis.In writing this paper, I have benefited from the presence of my teachers and my classmates. They generously helped me collect materials I need and made many invaluable suggestions. I hereby extend my grateful thanks to them for their kind help, without which the paper would not have been what it it. Particularly, I am deeply indebted to Ms. Liu, my supervisor, who guided me throughout my writing of this thesis. She carefully read the whole draft and offered precious criticism. Her standards of academic excellence have made my revision exciting and gratifying experience. I also wish to sincerely thank my classmates and friends, whose brilliant ideas and perceptive observations have proved immensely constructive.“情景式教学法”在小学英语教学中的应用摘要:传统小学英语教学模式就是老师在课堂上教授,学生做一些简单的听、说、读、写以及背诵。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

浅谈partial class的理解收藏
第一种说法:

partial classes:局部类型
partial类型可以使我们把对某个类的描述写在不同地方,甚至写到两个或多个
不同的文件中去。partial信息只对编译器有用,编译器在编译时看到对某个类的描
述是“碎”的(partial 的),它会去其他地方收集该类的其他碎片,然后把所有的该
类的碎片组合成完整的一个类,再对其编译。所以partial 体现不到编译好的 IL中
去的。

第二种说法
C#中的partial class(部分类)
2008-12-05 19:59
C# 2.0 可以将类、结构或接口的定义拆分到两个或多个源文件中,在类声明前添加
partial关键字即可。

例如:下面的PartialTest类
classPartialTest
{
stringStr_FieldTest;
intInt_FieldTest;
public void DoTest()
{
Debug.Print("Test");
}
}
可在不同源文件中写成下面形式:
一个文件中写:
partial class PartialTest
{
stringStr_FieldTest;
intInt_FieldTest;
}
另一个文件中写:
partial class PartialTest
{
public void DoTest()
{
Debug.Print("Test");
}
}
什么情况下使用分部类?
– 处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对
该类进行处理(相当于支持并行处理,很实用);

– 使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。Visual
Studio 在创建Windows 窗体、Web 窗体时都使用此方法。你不用编辑Visual
Studio 所创建的文件,便可创建使用这些类的代码。换句话说:系统会自动创建一
个文件(一般记录的是窗体及窗体中的控件的属性),另一个或几个文件记录的是
用户自己编写的代码。这两部分分开可以使结构显得非常清晰,用户只需关注自己
负责的那部分就行了(需要的话,这两部分可以互相调用)。等到了编辑运行的时
候,系统会自动将这两部分合成一个文件。

使用Partial需要注意以下一些情况:
1. 使用partial 关键字表明可在命名空间内定义该类、结构或接口的其他部分
2. 所有部分都必须使用partial 关键字
3. 各个部分必须具有相同的可访问性,如public、private 等
4. 如果将任意部分声明为抽象的,则整个类型都被视为抽象的
5. 如果将任意部分声明为密封的,则整个类型都被视为密封的
6. 如果任意部分声明继承基类时,则整个类型都将继承该类
7. 各个部分可以指定不同的基接口,最终类型将实现所有分部声明所列出的全
部接口

8. 在某一分部定义中声明的任何类、结构或接口成员可供所有其他部分使用
9.嵌套类型可以是分部的,即使它们所嵌套于的类型本身并不是分部的也如
此。如下所示:

class Container
{
partial class Nested
{
void Test1();
}
partial class Nested
{
void Test2();
}
}
使用分布类的一些限制:
1. 要作为同一类型的各个部分的所有分部类型定义都必须使用partial 进行修
饰。如下所示:

public partial class A { }
public class A { } // Error, must also be marked partial
2. partial修饰符只能出现在紧靠关键字class、struct或interface前面的位置(枚
举或其它类型都不能使用partial);

3. 要成为同一类型的各个部分的所有分部类型定义都必须在同一程序集和同一
模块(.exe 或.dll文件)中进行定义。分部定义不能跨越多个模块;

4. 类名和泛型类型参数在所有的分部类型定义中都必须匹配。泛型类型可以是
分部的。每个分部声明都必须以相同的顺序使用相同的参数名。
------------------------------------------------------------------------------------------------------------
------------------------------

partial class扩展功能新思路
开闭原则:“对修改封闭,对扩展开放”。在面向对象的系统中,通过类的继承
实现扩展。.net中提供的partial class提供了扩展类的新思路。

一、应用场景
可以使用partial class的场景很多。这里分析一个ORM的例子。
系统中有一个Cat类,属性ID、Age、Weight都需要存储到数据库中,一个信息系
统中常见的需求。通过读取数据库的结构,可以用工具生成Cat类的代码。并且
ORM框架支持了从数据库信息生成Cat对象。
现在的Cat什么动作都没有,客户说,我们需要一个Miaow()的函数。这时就需要
对ORM生成的Cat类进行扩展了。
可以肯定地一点是,我们不能修改自动生成的代码,因为这会牵涉到数据库结构与
代码同步的问题。解决这个需求有两种方法:继承方式扩展,partial class扩展。

二、继承方式扩展
工具自动生成一个CatBase类,这个类只有属性,嵌入到ORM框架中。既然需要
扩展功能,很容易想到对这个基类继承,于是有了Cat类。Cat类如愿以偿地有了
Miaow()函数。
以前系统中用的是CatBase的实例,现在创建CatBase实例的地方需要改为创建
Cat的实例。这个问题让ORM框架解决吧。
客户的需求实现了,我们自己的代码生成也没有遭到破坏,任务完成。

三、partial class扩展
partial class简单地说就是可以将一个类的代码写到两个或多个代码文件中。编译器
在编译的过程中将这几个文件组合起来一起编译。一个很酷的技术。
工具生成的Cat类仍然不变。既然需要增加函数,那么在新建一个代码文件,将
Miaow()函数写出来就可以。需要做的仅仅是将类的声明由class改为partial class,
任务完成。

四、对比分析
两种思路都可以实现需求。孰优孰劣需要仔细分析一下。
实例创建:partial class更加简洁。
系统复杂度:对于系统来说,partial class方式下只存在一个类,而继承方式有两个
类。
继承逻辑:从逻辑上讲,Cat并不需要一个基类CatBase,这样做仅仅是因为在代
码构建过程中的一个限制。
维护性:两种方式下都会存在两个代码文件,维护成本并没有区别。
可读性:两个Cat文件确实让人费解。

整体上说,使用partial class更加优雅一些。
“继承”的这种方式比较符合传统的思维习惯,而partial class到底是不是满足开闭
原则呢,这点确实不好说。不过在软件构建上,我是一个实用主义者,哪种方式好
用就用哪一种。
在ORM的场景中,partial class更加好一些,但有的时候,两个类之间确实就存在
继承关系,那么就必须用到继承了。虽然绝大多数情况下,都需要继承方式,但是
既然有了partial class技术,我们在做设计时也需要考虑这个思路。

在VS2005中,Form、DataSet都使用了partial class方式,原理和这个一样。但
是要将这个原理推广到“业务实体”中,可能在理解上需要有所突破。

使用partial class确实会带来可读性的损失,尤其是一个类分布在很多个文件中
的时候,所以文件的命名最好是有一个规范来保证。

第三种说法
.net 2.0中,有了个partial这样的关键字,最初接触它是在asp.net2.0中的
codeFile中见到的。

总给人一种不爽的感觉,默认生成那样的代码。所以项目中一直并不用它,包
括我接触的人当中,也鲜有人关注过它,个人觉得还是失败的,这样的一个功能
点。

partial,部分之义,partial class,顾名思义为部分类,msdn上称之为分布类,是
更贴切一些的,意思即为:一个类的一个部分。也就是说,可分别定义该类的接
口、成员等,编译器会在编译阶段将之合并成为一个类的。如下代码:

Code
查看其IL代码,即可知晓其真正的原身:
虽然这样能分开对之进行编写设计,但其自身的局限性,限制了别人对它的使
用,总觉得是个幌子而已。

局限性:1、必须存在于同一个程序集(dll exe)中 2、修饰符还必须一样,如
public/private/protected的,则不成 3、只能应用于class interface and struct 4、不易
统一管理

总之个人觉得这就是个幌子,极其恨之,没事搞个partial来,究竟能有多少实
际意义呢。。。

相关文档
最新文档