摘要: 【sqlserver】: sqlserver 认为 null 最小。 升序排列:null 值默认排在最前。 要想排后面,则:order by case when col is null then 1 else 0 end ,col 降序排列:null 值默认排在最后。 要想排在前面,则:order 阅读全文
posted @ 2016-12-11 15:38 飞飞O(∩_∩) 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 关于new的一道面试题-写出new关键字的三种用法: 一次面试中面试员问在C#中关于new关键字使用的三种方法,当时只回答了一种,面试结束后查询了一下有三种方法(参照MSDN)。下面把这三种方法介绍下: 1.new 运算符:用于创建对象和调用构造函数;(我的回答) 2.new修饰符:用于隐藏积... 阅读全文
posted @ 2014-06-13 18:09 飞飞O(∩_∩) 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 引言 事件与委托似乎很难以理解,这是因为它们的使用方式与常用的编码有很大的差别,例如通常编写的都是同步代码,调用一个类型的方法,会即刻出现方 法执行的结果,这是符合逻辑的。但在某些情况中,同步代码未必满足需求,拿公共汽车来打个比方,如果交通管制中心希望每一辆公车到达一个站点时都发送给自 己一个信号以便自己能够随时掌握交通状况,使用同步代码,公汽对象肯定需要调用管制中心对象,这样就出现了我们一直不愿意看到的情况:两个类型紧密地耦合 在一起。既然要其它类型对自己的行为作出反应,亲自调用其类型的方法似乎不可避免,在同步代码中,很难避免这种紧密的类型调用关系。另一个差别是在一般情况下,我们只将属性作. 阅读全文
posted @ 2014-03-12 21:14 飞飞O(∩_∩) 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1 /// 2 /// 根据“精确进程名”结束进程 3 /// 4 /// 精确进程名 5 public void KillProc(string strProcName) 6 { 7 try 8 { 9 //精确进程名 用GetProcessesByName 10 foreach (Process p in Process.GetProcessesByName(strProcN... 阅读全文
posted @ 2013-10-23 12:38 飞飞O(∩_∩) 阅读(5870) 评论(0) 推荐(0) 编辑
摘要: WPF读写config配置文件单。1. 在你的工程中,添加app.config文件。文件的内容默认为:1 2 3 2.如果你想给程序配置一些参数,就在标签中添加.例如下面:1 2 3 4 5 6 7 3.然后你在后台程序里需要的地方读写它就可以了。记住需要添加引用using System.Configuration; 4.读操作:string strPath = ConfigurationManager.AppSettings["Path"]; 5.写操作:Configuration cfa = ConfigurationMana... 阅读全文
posted @ 2013-09-21 11:10 飞飞O(∩_∩) 阅读(19703) 评论(0) 推荐(2) 编辑
摘要: 访问类型名称数据库数据类型OLEDB 类型.NET 框架类型成员名称文本VarWCharDBTYPE _ WSTRSystem.StringOleDbType.VarWChar备忘录LongVarWCha RDBTYPE _ WSTRSystem.StringOleDbType.LongVarWChar字节数:UnsignedTinyIntDBTYPE _ UI 1System.ByteOleDbType.UnsignedTinyInt是 / 否BooleanDBTYPE_BOOLSystem.BooleanOleDbType.Boolean日期 / 时间DateTimeDBTYPE _ DA 阅读全文
posted @ 2013-09-12 17:36 飞飞O(∩_∩) 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容:^:b*[^:b#/]+.*$#开头和/开头或者空行都不计入代码量。如果需要只统计代码文件的代码量,可以选择查找文件的类型,比如什么*.xml, *.resx….可以不检查,只查*.cs,*.c,*.h…搜索出来以后最后一行就是代码行数了。 阅读全文
posted @ 2013-06-19 17:05 飞飞O(∩_∩) 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 在开发中要有一个计划,在那里实现,怎么实现,可以先写下来,以后可以检查是否实现了TODO: 可以方便的帮助我们完成这样的任务编程可以这样标记//TODO: 未实现以后在任务列表中就可以看到任务列表在试图-->任务列表 打开VS2010中默认没有启用TODO功能(在任务列表中看不到), 设置方法:工具->选项->文本编辑器->C/C++->格式设置->杂项->枚举注释任务-> True 阅读全文
posted @ 2013-03-01 23:36 飞飞O(∩_∩) 阅读(629) 评论(0) 推荐(1) 编辑
摘要: 对于特定类类型的全体对象而言,访问一个全局对象有时是必要的。也许,在程序的任一点需要统计已创建的类对象的数量;或者,全局对象可能是指向类的错误处理例程的一个指针;或者,他是指向类类型对象的内存自由存储区的一个指针。 然而,全局对象会破坏封装:对象需要支持特定类抽象的实现。如果对象是全局的,一般的用户代码就可以修改这个值。类可以定义类静态成员,而不是定义一个可普遍访问的全局对象。 通常,非static数据成员存在于类类型的每个对象中。不像普通的数据成员,static数据成员独立于该类的任意对象而存在;每个static数据成员是与类关联的对象,并不是直接使用非static成员。 1.使用... 阅读全文
posted @ 2012-12-29 18:53 飞飞O(∩_∩) 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 指针提供间接操作其所指对象的功能。与对迭代器进行解引用操作一样,对指针进行解引用可访问它所指的对象,*操作符将获取指针所指的对象: string s("hello world"); string *sp = &s; cout<<*sp; //结果为:hello world 对sp进行解引用将获得s的值,然后用输出操作符输出该值,于是最后一条语句输出了s的内容hello world。 1.生成左值的解引用操作 解引用操作符返回指定对象的左值,利用这个功能可修改指针所指对象的值: *sp = "goodbye"; 因为sp指向s,所以给* 阅读全文
posted @ 2012-12-28 18:04 飞飞O(∩_∩) 阅读(249) 评论(0) 推荐(0) 编辑