摘要:
选择恒定的原子值类型数据 阅读全文
摘要:
区别值类型数据和引用类型数据 阅读全文
摘要:
.NET Framework提供给我们拓展其内置格式化字符串接口:IFormattable 、ICustomFormatter 、IFormatProvider本文介绍两个自定义格式字符串的方法:1、在继承IFormattable接口的自定义类型中实现IFormattable接口的ToString方法2、在继承ICustomFormatter 和 IFormatProvider 接口的自定义类型中实现 IFormatProvider 接口的GetFormat方法和ICustomFormatter 接口的Format方法。测试方法:1、根据方法1和方法2 分别创建两个自定义类:class CUn 阅读全文
摘要:
时以or 的形式并列的。例如,下面这个版本的CheckState会在DEBUG或者TRACE为真时被调用: [ Conditional( "DEBUG" ), Conditional( "TRACE" ) ] private void CheckState( ) 如果要产生一个and 的并列条件属性,你就要 自己事先直接在代码里使用预处理命令定义一个标记: #if ( VAR1 && VAR2 ) #define BOTH #endif 阅读全文
摘要:
强制类型转换: 只考虑转换编译时类型与目标类型是否可以转换;若类有定义自己的转换运算符,则会调用转换函数。as: 若类有定义自己的转换运算符,不会调用转换函数。建议使用as 做为转换函数。is: 只做判断,不做转换。所以建议用法: as 用于自定义类型的转换,强制转换用于内置类型转换(当自定义内型有转换函数时,也要用强制转换)。GetType()用于精确类型判断。 阅读全文
摘要:
const 在编译时需要确定其值,所以const的字段默认是静态的,因而不能这样声明:static const string str; 因为const 是编译时确定,所以其不能用于带new的类型,只能用于一些简单类型。注const DateTime dt=new DateTime();是错误的。readonly 是运行时常量,其值在编译时不确定。 阅读全文
摘要:
综上所述,只要打算将数据暴露在类型 的公有接口或者受保护接口中,我们都应该使用属性来实现。对于 具有序列或者字典特征的类型 ,则应该采用索引器。所有的数据成员都应一律声明为私有。 阅读全文