Effective C# 要点小结,不懂也得写

Effective C# 要点小结,不懂也得写Item 1: Use Properties Instead of Accessible Data Members 数据绑定支持属性不支持public数据成员 属性的方法实现中,对get和set访问器使用锁提供数据同步访问Item 2: Prefer readonly to const readonly运行时常量;const编译时常量,只...
摘要由CSDN通过智能技术生成

Effective C# 要点小结,不懂也得写

Item 1: Use Properties Instead of Accessible Data Members
数据绑定支持属性不支持public数据成员
属性的方法实现中,对get和set访问器使用锁提供数据同步访问

Item 2: Prefer readonly to const
readonly运行时常量;const编译时常量,只能用于基元类型、枚举、字符串
const在编译时将替换成具体的常量,引用时若未编译所有程序集,const常量值不会更新,readonly常量值更新。
const性能较高但灵活性相对低

Item 3: Prefer the is or as Operators to Casts
用户自定义类型转换只针对编译时期类型,运行时期对用户自定义转换不会执行
as进行类型转换会返回null,不能用于值类型(值类型不可能为null)
不支持as转换时,先使用is进行异常去除或转换,再用as进行转换
类型约束、强制类型转换

Item 4: Use Conditional Attributes Instead of #if
条件特性只能运用于方法,条件特性方法返回值必是void,没有参数
多个条件特性逗号连接表示OR操作,使用预编译块可设置条件特性AND操作
#if ( VAR1 && VAR2 )
#define BOTH
#endif

Item 5: Always Provide ToString()
友好信息输出
System.IFormattable.ToString()格式化字符串输出接口 一些格式必要实现
添加IFormatProvider 和ICustomFormatter接口定制消息输出

Item 6: Understand the Relationships Among the Many Different Concepts of Equality
ReferenceEquals()判断引用相等
静态Equals()先引用判断再值判断
引用类型的判断时,使用值语义时使用重写Equals()方法
创建值类型时重写operator==()

Item 7: Understand the Pitfalls of GetHashCode()
GetHashCode()仅应用在基于散列的集合定义键的散列值,如HashTable< T >或Dictionary< K,V >
重写GetHashCode()条件:相等对象返回相同哈希值;对象的GetHashCode()必是实例不变量;针对所有输入产生整数随机分布

Item 8: Prefer Query Syntax to Loops
查询语法相比循环结构能创建多种组合的API
使用.AsParallel()能够并行执行查询

Item 9: Avoid Conversion Operators in Your APIs
隐式转换操作 当一个类型转换到另一个类型
显式转换 当代码中强制转换
转换会再编译时丢失对象
当替代对象可用,即为临时对象或能访问内部域

Item 10: Use Optional Parameters to Minimize Method Overloads
使用默认参数和命令参数可以创造使用者想要的重载组合
创建新版本时必须创建额外参数的重载
避免更改参数名称

Item 11: Understand the Attraction

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值