zoukankan      html  css  js  c++  java
  • .NET 设计规范.NET约定、惯用法与模式8.使用规范

      这里就如何在公用API中使用常用类型提供提供一些规范。

      8.1数组

      要在公用API中优先使用集合,而不是优先使用数组。

      不要使用只读的数组字段。虽然字段本身是只读的,用户不能对其进行修改,但对用户可以修改数组中的元素

      有两种方法可以避免使用只读的数组字段,一种是使用只读的集合,另一种是在返回数组之前对其进行复制

      考虑使用不规则数组(jagged array),而不是要使用多维数组

      //jagged arrays

      int [][] jaggedArray={

      new int[]{1,2,3,4},

      new int[]{5,6,7},

      new int[]{8},

      new int[]{9}

      };

      //multidimension arrays

      int [,] multidmensional arrays

      {

      {1,2,3,4},

      {5,6,70},

      {8,0,0,0},

      {9,0,0,0}

    }

    8.2 attribute

      System.Attribute 是个基类,用户可以用它来定制自己的attribute。

      当使用attribute时,有一些属性是必须由用户指定。用于这些属性通过构造函数中的必填参数来表示,因此称为必填属性(required property)或必填参数(required argument)。

      当使用attribute时,不是必须指定的那些属性称为可选属性(optional property)或可选参数(optional argument),它们通过可设置的属性来表示。

      要在命名自定义attribute类时添加"Attribute"后缀

      要在定义自己的attribute时使用AttriubteUsageAttribute

      要为可选参数提供可设置的属性

      要为必填参数提供自读属性

      要提供工作函数参数来对必填参数进行初始。每个参数名应该与相应的属性名相同

      避免提供构造函数参数来对于可选参数对应的属性进行初始

      避免对自定义attribute的构造函数进行重载

      要尽可能将自定义attribute类密封起来。这样会使查找attribute更快

    8.3 集合

      为了对一组有共同特征的对象进行操作而特别设计的任何类型,都可以称为集合(Collection)。

      不要在公有API中使用弱类型集合,如果返回值和参数表示一个集合元素,那么其类型应该与元素类型完全一致,而不应该使元素类型的任何基类。

      不要在公有API中使用ArrayList或List<T>

      不要在公有API中使用Hashtable或Dictionary<TKey,TValue>

      不要使用IEnumberator<T>、IEnumreator或实现了这两个接口之一的任何其他类型,触发是作为GetEnumerator方法的返回值。

  • 相关阅读:
    《杜教筛》
    《洛谷P4213 【模板】杜教筛(Sum)》
    《洛谷P1829 [国家集训队]Crash的数字表格 / JZPTAB》
    《纸牌问题》
    《洛谷P2522 [HAOI2011]Problem b》
    使用urlretrieve下载图片
    scrapy初探
    爬豆瓣电影名
    直接插入排序
    Windows python 3 安装OpenCV
  • 原文地址:https://www.cnblogs.com/lufangtao/p/2453168.html
Copyright © 2011-2022 走看看