Ant*_*ney 11 .net c# vb.net operator-overloading
在什么情况下你会考虑在.NET中重载一个运算符?
Jon*_*eet 17
Equals
IComparable<T>
Nullable<T>
如果含义不是很明显,那么黄金法则不会使运营商超负荷.例如,我认为打开一个+运算符是很奇怪的Stream- 它可能意味着"在这里写一个可写的T,所以写入结果写入两者"或者它可能意味着"一个接一个地读"或者可能其他事情.
Stream
根据我的经验,除了==和!=之外的任何重载都是非常罕见的.
Ric*_*dOD 16
我认为框架设计指南提供了一些不错的建议:
AVOID定义运算符重载,除了应该感觉像原始(内置)类型的类型. CONSIDER在一个应该感觉像基本类型的类型中定义运算符重载. 请在表示数字的结构中定义运算符重载(例如System.Decimal). 定义运算符重载时不要太可爱. 除非至少有一个操作数是定义过载的类型,否则不要提供操作符重载. DO以对称方式过载运算符. CONSIDER为方法提供与每个重载运算符对应的友好名称.
归档时间:
16 年,2 月 前
查看次数:
1741 次
最近记录:
10 年,2 月 前