乐虎游戏|乐虎国际登录|欢迎你

[.NET] 《Effective C#》快速笔记(三)- 使用 C# 表达设计,

日期:2019-11-07编辑作者:计算机资讯

[.NET] 《Effective C#》飞快笔记(三卡塔尔国- 使用 C# 表达设计,

《Effective C#》急忙笔记(三卡塔 尔(阿拉伯语:قطر‎- 使用 C# 表明设计

 目录

  • 八十意气风发、节制类型的可以知道性
  • 八十一、通过定义并落到实处接口代替继续
  • 八十四、驾驭接口方法和虚方法的区分
  • 三十二、用委托实现回调
  • 四十九、用事件形式实现文告
  • 三十八、幸免重返对内部类对象的援用
  • 八十六、让项目帮助类别化
  • 七十四、提供组粒度的因特网服务 API
  • 二十七、扶植泛型协变和逆变

 

三十生龙活虎、约束类型的可以知道性

  1.在确定保证项目能够成功工作的前提下,应该尽量地给项目分配最小的可以看到性。

  2.大家平日下发掘的创建公有类型。可以知道性越低,现在提拔或更动时所必要的变退让越小,因为能访问你成效模块的代码越少。

  3.创立内部类是风流倜傥种常被忽视约束类型成效域的做法,大家平日习于旧贯不假寻思地创立公有类。你应当紧凑动脑那些二个品种的机能范围,即它是将被有着的客户利用,照旧仅用在此个顺序集的中间。

  4.更加少的公有类型也会让单元测量检验变得更为简明,因为数量裁减。

  5.以国有方式拆穿给外部的类和接口将成为您的机件的协议。接口越冗余,日后的改换就越受限。暴露的公有类型越少,今后更新扩展的时候争执的后路就能越大。

 

八十三、通过定义并贯彻接口取代继续

  1.抽象基类为类的继续种类提供了八个集体的祖先,接口描述了黄金年代组原子性的效果与利益。接口是生龙活虎种左券,抽象基类则为生龙活虎组有关的门类提供了四个公共的虚幻。基类描述了对象是如何,接口描述了指标怎么样表现它的作为。

  2.大家理应分辨并将可选取的作为提取出来,定义在接口中。由于不相干的项目均能够达成叁个接口,那意味代码的重用率将大大扩展。

  3.假若向基类中增添三个格局,全体派生类都将活动包括该办法。相当于说,随着年华的延期,还是能够有效扩充八个类型效用的途径。通过向基类增加并实现某种意义,全体的派生类都将任何时候具有该意义。而向接口中增多一个成员,会破坏全体达成该接口的类。因为这个类不分包新情势,每二个完结都供给举行更新,然后再一次编写翻译。

  4.在架空中基地类和接口之间做选取,实际上就象征了对未来或许发生变化的分化管理态度。接口是一定的:大家将生机勃勃组作用封装在二个接口,作为别的品种的公约。而基类则能够在事后扩充,这么些扩充也会产生每一种派生类的一片段。

  5.也能够利用扩展方法举办扩展。

  6.有时候,使用接口能够协助我们防止 struct 类型的拆箱所推动的代价。

 

七十一、驾驭接口方法和虚方法的分别

 

七十五、用委托完结回调

  1.类之间须求通讯时,並且大家愿意大器晚成种比接口所提供的愈发松散的耦合机制时,委托正是一级的选取。委托允许大家在运行时布署指标并通报多少个客商对象,委托对象中隐含二个主意援用,该措施能够是静态方法,也能够是实例方法。

  2.多播委托会把具备增添到该信托中的指标函数组合成四个十足的调用。供给在乎的是:

  (1卡塔 尔(阿拉伯语:قطر‎假若有嘱托调用现身非常,那么就不可能确定保证卫安全全;

  (2卡塔尔整个调用的重临值将为终极三个函数调用的再次回到值。

  3.在多播委托调用的经过中,每种指标会被逐风流倜傥调用。委托对象自己不会捕捉任何极度。因而,任何目的抛出的不行都会甘休委托链的调用。

 

三十七、用事件情势实现布告

  

八十三、防止重临对内部类对象的援引

  1.4 种战术能够免备类型的里边数据结构碰到有意或下意识的改变:值类型、常量类型、接口和包装器(wrapper卡塔尔:

  (1卡塔 尔(阿拉伯语:قطر‎当顾客代码通过质量来访问值类型成员时,实际再次来到的是值类型的副本。

  (2卡塔 尔(阿拉伯语:قطر‎常量类型,如:System.String 也是无虑无忧的。

  (3卡塔 尔(英语:State of Qatar)通过接口向外侧暴光类的效果与利益,就能够尽量地防止在那之中数据遭到无意的转移。

  (4卡塔尔仅揭露包装器。

  2.由此选用接口、包装器对象或值类型向外侧提供内部的个人数据,就能够约束外部对那么些数量的拜见才能。

 

三十三、让项目扶植连串化

  

四十四、提供组粒度的因特网服务 API

  1.每一遍通过互联网获取一小段数据时,应用程序都亟待等待互连网传输的长河,API 的粒度越细,所消费在等候数据再次来到上的附加时间也就越来越多。

  2.咱们期望同期减弱通讯的频率以至历次通讯时所传递的数据量。但这三个指标往往不可兼得,由此必需做出选取。尽量不要走多少个非常,能够方便选拔比较少的通信次数,尽量三遍传输更加的多的数据。

 

七十六、协理泛型协变和逆变

  1.类型变体:协变和逆变。定义了在某种景况下,某些项目能够取代另叁个品种实行利用。你应当尽可能地让泛型接口和泛型委托援救协变和逆变。

  2.协变和逆变是二种分化款式的体系替换。若某些再次回到的品类能够由派生类型替换,那么那些种类即是帮衬协变的。若有个别参数类型能够由其基类替换,那么这一个项目正是永葆逆变的。

  3.在可能之处下为泛型接口和嘱托加多上 in 和 out 参数举办修饰。

  4.因为 IList<T> 未有增进 in 或 out 修饰 T,所以必需利用正确的品种相称。

 

本系列

  《Effective C#》快捷笔记(后生可畏卡塔尔国- C# 语言习贯

  《Effective C#》急速笔记(二卡塔 尔(英语:State of Qatar)- .NET 能源托管

  《Effective C#》火速笔记(三卡塔尔国- 使用 C# 表明设计

 

 


【博主】反骨仔

【原文】 

] 《Effective C#》火速笔记(三卡塔尔- 使用 C# 表明设计, 《Effective C#》快捷笔记(三卡塔 尔(英语:State of Qatar)- 使用 C# 表达设计 目录 二十意气风发、约束类型的可以看见性...

本文由乐虎游戏发布于计算机资讯,转载请注明出处:[.NET] 《Effective C#》快速笔记(三)- 使用 C# 表达设计,

关键词:

文件操作,c++文件操作

文件操作,c++文件操作 Java文件操作 读写操作,java文件操作读写 一、Java读取文件 案例1:读取D盘的1.txt文件      ...

详细>>

C#之事件

C#之事件, 事件基于委托,可以为任何大器晚成种委托项目提供生龙活虎种宣布订阅机制。 使用event关键字将多少个...

详细>>

Hadoop namenode配置以及问题处理

先是步:修改core-site.xml,配置如下内容: 尝试情形 重装系统后有折腾了漫长,才解决。。感到依然不可信赖。。先...

详细>>

mina.net 梳理,mina.net

mina.net 梳理,mina.net LZ最近离职,闲着也是闲着,打算梳理下 mg娱乐场www4355com,公司做的是电商,CTO打算把2.0系统用...

详细>>