摘要:
Code snippet:最好时间复杂度: O(1)最坏时间复杂度: O(log2n) 阅读全文
摘要:
如果类型直接没有继承关系,也没有共享接口,想在这两个类型之间进行转换,就必须重载转换运算符。此时需要关键字implicit和explicit。下面定义了类型ConvClass1和ConvClass2,类型1转换到2是显式转换,需要在类型1里定义转换到类型2的重载函数,用到关键字implicit。类型2到类型1是隐式转换,需在类型2里定义转换到类型1的重载函数,用到关键字explicit。调用代码如下 阅读全文
摘要:
利用继承自抽象类CollectionBase来使得类具有集合功能,Add, Remove。如果想通过下标访问,还得实现索引符。 阅读全文
摘要:
一个类只能有一个静态构造函数,该构造函数不能有访问修饰符,不能带任何参数,不能直接调用,只能在:1 创建包含静态构造函数的类实例时2 访问包含静态构造函数的静态成员时会先调用静态构造函数,无论创建了多少个类实例,其静态构造函数都只调用了一次。静态类只包含静态成员,不能实例化,不过可以有一个上面提到的静态构造函数。 阅读全文
摘要:
引用参数和值参数值参数,是在函数中此变量的任何修改都不影响函数调用中指定的参数,除非把它当作返回值返回,经典例子,交换两个数,但是返回值只有一个。此时可以用引用参数,函数处理的变量和函数调用中使用的变量相同。ref和outref使用限制,使用前必须初始化,不能传入常量值给此种类型。out,传入时可以赋值或不赋值,但是在函数内部一定要有赋值过程。 阅读全文
摘要:
阅读全文
摘要:
1. 限制返回的行 select top 10 * from tablename2. 返回随机n行 select top n * from tablename order by newid() 阅读全文
摘要:
select name, sal,case when sal >= 4000 then 'Good' when sal <= 2000 then 'Bad' else 'Ok'end as Statusfrom tablename 阅读全文
摘要:
1. 设置断点选中需要设置断点的行,右键选择断点插入断点,此行左侧显示红色圆形标志。或者F9有几个条件断点类型:a. 条件断点b. 命中次数,大于,几倍于,大于等于你设置的断点次数此时中断c. 筛选器,可以设置一些条件,这次条件可以有and 或者or的关系...2. 判定语句使用Debug.Assert(), Trace.Assert() 阅读全文
摘要:
一般我们用Console.WriteLine()函数,将文本输出到控制台上来跟踪代码进行到了什么位置,局限性很大,适用范围窄。1. 输出调试信息命名空间 System.DignosticsDebug.WriteLine()Trace.WriteLine()看下面的例子就能知道这两者的区别了DebugRelease还有类似命令:Debug.Write(), Trace.Write(), Debug.WriteIf(), Trace.WriteIf(), Debug.WriteLineIf(), Trace.WriteLineIf()2. 跟踪点插入跟踪点,选中当前行,鼠标右键,选择,断点-> 阅读全文