.NET 指南:参数的设计
本文中的这个指南有助于你为成员参数选择正确的类型和名称。下列文章同样呈现了参数的设计指南。
- 枚举与 Boolean 参数之间的选择
- 使用可变数量的参数的成员。
- 指针参数
- 传递参数
- 验证参量
使用最少被获得的并通过成员来提供必需功能的变量类型。
下列代码范例说明了这个指导方针。BookInfo 类继承自 Publication 类。Manager 类实现了两个方法:BadGetAuthorBiography 和 GoodGetAuthorBiography。BadGetAuthorBiography 使用了一个 BookInfo 对象的引用,尽管它只使用了在 Publication 里被声明的成员。GoodGetAuthorBiography 方法示范了正确的设计。
// 拥有基本信息的类。 public class Publication {string author;DateTime publicationDate;public Publication(string author, DateTime publishDate){this.author = author;this.publicationDate = publishDate;}public DateTime PublicationDate{get {return publicationDate;}}public string Author{get {return author;}} }// 继承自 Publication 的类 public class BookInfo :Publication {string isbn;public BookInfo(string author, DateTime publishDate, string isbn) :base(author, publishDate){this.isbn = isbn;}public string Isbn{get {return isbn;}} }public class Manager {// 这个方法没有使用 Isbn 成员,因此它不需要 Books 的一个专门引用static string BadGetAuthorBiography(BookInfo book){string biography = "";string author = book.Author;// 在这里操作。return biography;}// 这个方法说明了正确的设计。static string GoodGetAuthorBiography(Publication item){string biography = "";string author = item.Author;// 在这里操作。return biography;} }
不要使用被保留的参数。
库的将来版本中能够添加能够获取附加属性的新重载。
下列代码范例首先示范了一个违反了这个指导方针的错误方法,然后说明了另外一个正确被设计的方法。
public void BadStoreTimeDifference (DateTime localDate, TimeZone toWhere, Object reserved){// 在这里操作。}public void GoodCStoreTimeDifference (DateTime localDate, TimeZone toWhere) {// 在这里操作。 } public void GoodCStoreTimeDifference (DateTime localDate, TimeZone toWhere, bool useDayLightSavingsTime) {// 在这里操作 }
不要公开暴露获取指针、指针的数组,或者多维数组来作为参数的方法。
在使用大部分库的时候,明白这些高级特征应该不是必须的。
把所有的输出参数放到经值传递的参数和 ref 参数(排除参数的数组)的后面,即使这样做导致了在重载之间的参数次序出现矛盾。
这个约定使方法的签名更加容易被理解。
在成员重载或实现接口成员的时候保持一致的参数命名。
重载应该使用相同的参数名称。重载应该使用与成员声明相同的参数名称。接口的实现应该使用在接口成员的签名中被定义的相同名称。
转载于:https://www.cnblogs.com/Laeb/archive/2007/02/01/637394.html
.NET 指南:参数的设计相关推荐
- XGBoost-Python完全调参指南-参数解释篇
本文转自XGBoost-Python完全调参指南-参数解释篇.对XGBoost有需要小伙伴可以参看.并在此基础上,添加了一些内容. 在analytics vidhya上看到一篇<Complete ...
- 蜗杆参数法设计_齿轮几何尺寸设计,很实用的Excel表格(附自动计算表格)
各类齿轮自动计算校核表格获取见文章最下方 我们生活中最常见的齿轮有渐开线圆柱直齿轮.圆锥齿轮.涡轮蜗杆以及链轮类的设计计算,在进行设计时,我们都是对于尺寸进行设计计算,一般都是先要了解齿轮的模数,压力 ...
- 支付渠道参数如何设计成路由化配置
转载自 支付渠道参数如何设计成路由化配置 今天我们来探讨在搭建支付系统时一个比较关键的问题:渠道参数路由化配置如何设计? 在开发支付系统的时候,我们经常会涉及到对接多个支付渠道,除常见的支付宝.微信 ...
- [ISUX译]iOS 9人机界面指南(二):设计策略
[ISUX译]iOS 9人机界面指南(二):设计策略 雪糕 2015.11.09 文章索引 2.1 设计原则(Design Principles) 2.1.1 美学完整性(Aesthetic Inte ...
- 视频教程-板绘生存指南-原画设计
板绘生存指南 高校原画设计专业内训师.八年行业经验与线上线下教学经验.参与<无尽战区>.<无尽战区><天下3>.<神武2><枪魂>等项目 陈 ...
- Qt/C++音视频开发45-音视频类结构体参数的设计
一.前言 视频监控内核组件重构和完善花了一年多时间,整个组件个人认为设计的最好的部分就是各种结构体参数的设计,而且分门别类,有枚举值,也有窗体相关的结构体参数,解码相关的结构体参数,同时将部分常用的结 ...
- neo4j图形算法综合指南_网页设计中色彩使用的综合指南
neo4j图形算法综合指南 There is a lot of material about color to be found online. But none of us has the time ...
- py获取前端的参数_设计小巧、高效和高性能的多参数患者监护仪
连续测量如心率.呼吸频率和血氧饱和度(SpO2)等患者生命指征对于提供有效护理来说至关重要,而同时测量这些体征的能力也使得多参数患者监护仪变得日益重要. 电子患者监护仪使用连到患者身上的非侵入式传感器 ...
- 蜗杆参数法设计_技术贴 | 减速器结构及设计的注意事项
减速机器用于低转速大扭矩的传动设备,原理是把电动机.内燃机.马达或其它高速运转的动力,通过减速机的输入轴上齿数少的齿轮啮合输出轴上的大齿轮,从而达到减速的目的:大小齿轮的齿数之比,就是传动比.减速器是 ...
最新文章
- [算法]最小生成树-普利姆算法
- 2021年春季学期-信号与系统-第八次作业参考答案-第十一小题
- 河北师范大学C语言试题,2017年河北师范大学信息技术学院838C语言程序设计考研题库...
- Java程序员从笨鸟到菜鸟之(一百零六)java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- JAVA解析各种编码密钥对(DER、PEM、openssh公钥)
- ORA-01720: grant option does not exist for 'xxx.xxxx'
- jsp学习(1)jsp请求过程和生命周期
- Markdown-基础语法
- 理解A*寻路算法具体过程
- CSS导入使用及引用的两种方法
- aptitude 命令_C-命令行参数Aptitude问题与解答
- 游戏角色坐标的保存间隔_游戏岗位看这里鸭——
- js add方法_Vue.js列表过渡
- 特殊人物请遵循公司工作的基本准则
- 最近对焦距离与最大放大倍率
- LeetCode 654. Maximum Binary Tree最大二叉树 (C++)
- Spring Boot + thymeleaf 后台与页面(二)
- Vigenère密码(Day 1)详解
- 基于Springboot实现销售团队管理系统
- win10系统下SQL2012下载及安装
热门文章
- matlab向量的角标,【MATLAB】利用冒号表达式获得子矩阵
- php5.4 session配置,Session
- java 二维数组倒置_Java数组反转及二维数组
- 印度程序员为什么牛掰之ISAS.激发人的兴趣.探索精神.
- ugui unity 取消选择_关于Unity中的UGUI优化,你可能遇到这些问题
- excel打印预览在哪里_Excel如何打印表格,每页纸都有标题?
- linux下利用C或C++语言调用需要root权限的函数
- Requests 2.18.1文档
- React学习:事件绑定、组件定义、for、map循环-学习笔记
- centos6.5下如何把python2.6.6升级到2.7