随笔- 91
文章- 1
评论- 9
阅读-
54451
11 2013 档案
sql里Where条件顺序
摘要:以前的理解: sql语句里where后面的条件是否分先后顺序的 ,比如 A and B and C和 C and B and A 是一样,不像C语言 A && B 与B && A 执行效果不一样,是从左向右的。为什么会得出这样的结论呢?也就是论据是什么?如果条件有三列a,b,c;b列上有索引 那么Where a='a' and b='b' and c='c' 与Where c='c' and b='b' and c='c' 都会优先选b列,因为b列有索引,所以不会是从
阅读全文
多线程相关Interlocked.Increment问题
摘要:今天群里有人问到如下代码打印出来的东西为什么不是连续得,所以有大神解释了原因。在这过程中遇到了些奇怪的情况 static void Main(string[] args) { for (int i = 0; i < 10; i++) { new System.Threading.Thread(Foo).Start(); } //System.Threading.Thread.Sleep(20); //Console.WriteL...
阅读全文
协变抗变
摘要:>协变与抗变(逆变) >总说 协变就是从子类型到父类型的变化,顺着来叫着协变,如 Shape s=new Rectangle(); 抗变就是从类型到子类型的变化,逆着来叫抗变,这种情况的例子很少 >委托中的协变和抗变 可以用一句语来说明 在委托中返回类型支持协变的,参数类型是支持抗变 的。 比如 d
阅读全文
关于for循环条件性能问题
摘要:昨天看一博客写到一条 尽量使用 for(int i=0,ct=list.Count();i<ct;i++){} 这样的格式,因为我平时一般都是用for(int i=0;i<list.Count();i++){}按正常的for循环的逻辑,后面一情况是会多次调用list.Count()方法的,我就想验证编译器是否把list.Count()放入一个昨时变量,实现同第一种方式一样性能的情况。1。第一步我是先用时间测试,大概代码如下 System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch(); ...
阅读全文
委托传参,lambda
摘要:今天一朋友问到一问题,怎么在timer的委托里面传参数,我初一想Invoke可以传参数吧,我就说了。 后来他说这个委托是微软定义,不能变参数,于是我就自己写了一段代码试试. 我最初写的代码如下 public class A { public string p = string.Empty; public void foo(object sender, System.Timers.ElapsedEventArgs e) { B.foo(p); } } 然后在循环里 为A的对象传参数 ...
阅读全文