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

    C# 高效编程笔记1

    1.使用属性而不是可访问的数据成员

    (1).NET Framework中的数据绑定类仅支持属性,而不支持共有数据成员

    (2)属性相比数据成员更容易修改

    2.用运行时常量(readonly),而不是编译期常量(const)

    (1)编译常量支持类型:基本类型,枚举,字符串, 在编译时初始化

    (2)运行时常量支持类型:任意类型,构造函数或初始化器中初始化

    (3)const在性能上优于readonly,但是readonly的灵活性更佳

    3.推荐使用is或as操作符而不是强制类型转换

    (1)尽可能使用as

    (2)符合目标类型时才能转换成功,也不会在转换时创建新对象

    (3)as不能转换值类型,as可以

    4.使用conditional特性而不是#if条件编译

    (1)conditional特性只能应用于整个方法,且方法只能返回void类型,最好不要有任何参数

    5.为类型提供ToString()方法

    6.理解几个等同性判断之间的关系

    public static bool ReferenceEquals(object left, object right); // 根据对象标识,而不是对象内容.比较值类型,返回fals.不应该重新定义

    public static bool Equals(object left, object right);// 不应该重新定义

    public virtual bool Equals(object right);

    public static bool operator ==(MyClass left, MyClass right);

    (1)Equals覆写规则:对于所有的值类型, 都应该覆写其Equals方法;对于引用类型,只有在System.Object提供的Equals方法不能满足需求时,才覆写Equals方法.覆写Equals方法的同时也要覆写GetHashCode方法.

    (2)只要创建新的值类型,都应该覆写operator ==方法

  • 相关阅读:
    「日常训练」Single-use Stones (CFR476D2D)
    「日常训练」Greedy Arkady (CFR476D2C)
    「Haskell 学习」二 类型和函数(上)
    「学习记录」《数值分析》第二章计算实习题(Python语言)
    「日常训练」Alena And The Heater (CFR466D2D)
    Dubbo 消费者
    Dubbo 暴露服务
    Rpc
    git fail to push some refs....
    Spring Cloud (6)config 客户端配置 与GitHub通信
  • 原文地址:https://www.cnblogs.com/Johar/p/6195079.html
Copyright © 2011-2022 走看看