C#接口有三种用途: 一、提供方法、属性、事件的抽象。 这是接口最常见的用途。在面向对象的设计中,接口是软件架构可扩展性的重要保证因素,与抽象类配合使用,使得框架结构具有“被注入”的特性,从而提高系统的扩展性。 二、用作泛型约束。 在这种情况下,接口可以仅仅是一个类型,其中可以不带任何方法、属性或事...
分类:攻城湿
54 篇文章自从我用了EF,每次都很关心是否有潜在的性能问题。所以每次我写LINQ查询,都会使用SQL Profiler看一下实际生成的SQL语句,以便发现潜在的性能问题。也强烈建议大家这么去做,以免日后软件大了出了问题很难查。 一、只选择某列或某些列 有些时候,在C#里写LINQ虽然看着舒服,但性能不一定好,...
一. group by 1.GROUP BY子句主要用于对WHERE中得到的结果进行分组,也就是说它是在WHERE子句之后执行,对经过WHERE筛选后的结果按照某些列进行分组,之后进行相应的处理工作。 注意:如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,作为分组的依据;要么就...
我花了一周的时间评估比较了一下各种消息队列产品,非常的有趣。我做这个事的动机是因为一个客户有一个很高性能需求。他们的消息信息突破了1百万个并发。目前他们使用的是SQL server,并不理想,我建议他们使用消息队列服务器。 为了对一些相似的候选产品获得一个全面的但是粗浅的性能上的了解,我们它们放在一...
互联网软件的开发和发布,已经形成了一套标准流程,最重要的组成部分就是持续集成(Continuous integration,简称CI)。 本文简要介绍持续集成的概念和做法。 一、概念 持续集成指的是,频繁地(一天多次)将代码集成到主干。 它的好处主要有两个。 **(1)快速发现错误。**每完成一点更...
程序中记录日志一般有两个目的:Troubleshooting和显示程序运行状态。好的日志记录方式可以提供我们足够多定位问题的依据。日志记录大家都会认为简单,但如何通过日志可以高效定位问题并不是简单的事情。这里列举下面三个方面的内容,辅以代码示例,总结如何写好日志,希望对他人有所启发和帮助: 怎样记日...
你或许知道你能使用String.Trim方法去除字符串的头和尾的空格,不幸运的是. 这个Trim方法不能去除字符串中间的C#空格。 static void Main() { //demo1 除去空格,提取出各个单词 string s = "a b c"; stri...
ServerVariables ServerVariables 集合检索预定的环境变量。 语法 Request.ServerVariables (***server environment* *variable***) 参数 服务器环境变量 指定要检索的服务器环境变量名。可以使用下面列出的值。 变量...
1 引言 有多少新人在不同语言, 不同数据类型, 不同的选择, 循环等方式中游走, 一遍遍的书写着片断式的代码, 然后自认为已经步入了编程的大门, 其实仍然在殿堂外不断着徘徊着寻找着进入的大门. 其实我也算是其中一个. 作为一个程序员, 首先需要认识的不单单是语言的细节, 更重要的还有软件开发的意识...
一种态度认为,应该对程序员在软件开发中的行为进行约束(DirectingAttitude)。 持这种态度的人认为大部分的程序员水平都不高(谣传说有50%的人低于平均水平),所以应该对他们所做的事情进行管教约束。要防止他们做一些可能会给他们 正在开发的系统带来危害的事情。通常,这种态度体现在一些系统设...