zoukankan      html  css  js  c++  java
  • C# 高效编程笔记2

    C# 高效编程笔记2

    1.理解GetHashCode()的陷阱

    (1)作用:作为基于散列集合定义键的散列值,如:HashSet<T>,Dictionary<K,V>容器等

    (2)重载GetHashCode()的规则:

    如果两个对象相等,那么其散列值也应相等;对于任何一个对象,其GetHashCode()必须保持不变;对于所有输入,散列函数应该在所有整数中按照随机分布生成散列码.

    2.推荐使用查询语句而不是循环

    查询语句可以让程序的逻辑表达式由"命令式"转为"声明式",更加清晰的表达意图

    3.避免在API中使用转换操作符

    4.使用可选参数减少方法重载的数量

    5.短小方法的优势-内联(inline)

    内联:虚方法和包含try/catch代码块不会被内联

    不要内联的指定方式:[MethodImpl(MethodImplOptions.NoInling)]

    6.推荐使用成员初始化器而不是赋值语句

    (1)成员初始化器在其构造函数,基类构造函数之前执行

    (2)避免使用成员初始化器的情况:

    要初始化为0或null;要对同一变量执行不同的初始化方法;需要进行异常处理

    7.正确得初始化静态成员变量

    8.尽量减少重复的初始化逻辑

    9.使用using和try/finally清理资源

    非托管资源类型必须显式使用IDisposable接口Dispose()来释放

    10.避免创建不必要的对象

  • 相关阅读:
    celery worker的工作模式
    动态加载js
    PHP加密解密
    js加载div, 元素事件不生效问题
    任意页面加载聊天框组件(也可用于其他)
    重装系统
    vue 跨域问题
    859. Buddy Strings
    316. Remove Duplicate Letters
    654. Maximum Binary Tree
  • 原文地址:https://www.cnblogs.com/Johar/p/6201121.html
Copyright © 2011-2022 走看看