摘要:
C# 4.0 dynamic:声明动态对象dynamic关键字用于声明一个动态对象,然后通过该动态对象去调用方法或读写属性。这是C#4.0 添加的特性。官方解释:dynamic类型是帮助我们绕过编译进行类型检查,相反这些操作是在运行时处理。两个缺点新功能有两个缺点:1)VS不会只能提示,只用依靠你自己了,因为鬼才知道你引用的未知对象中有哪些操作方法,只有运行时Running才可以知道。2)运行时间变慢,反射的封装(自动反射),反射的效率不高。应用场景在使用C# 2.0或3.0的时候,如果一个对象需要在运行时才能确定,并且没有接口和基类方面的信息,那我们一般使用反射技术来调用这个未知对像的方法或 阅读全文
摘要:
上班中很少时间写文字博客了,老板会认为又逃避工作之嫌疑哦-_-!除了大部分时间在文档、代码上,还有每天还有跟客户的沟通。昨晚回家朋友在微博推荐一本书《生命最后的读书会》(都知道我原来是阅读爱好者,每每好书出版都迫不及待想先睹为快),给了豆瓣读书的连接。PS:简单介绍一下书籍并非原版的新书而是翻译的新出版,原版作者是:﹝美﹞威尔•施瓦尔贝,国内的翻译是姜莹莹。每次朋友推荐新书,都会先找一段试读,看看翻译怎么样,意境如何,这次当然如此!以前没有关注过豆瓣的试读功能,一直在当当试读。这次链接直接进入豆瓣,大致浏览写的是关于母爱人性的感人至深的故事,我愿意一看,因为我也爱我的母亲。 当时手头刚好... 阅读全文
摘要:
I am a developer in a 5-member team and I believe our project is headed for disaster. I'll describe why in the bottom, but my question is how should I behave? The deadline is in 1.5 months and I feel no matter we work this project will fail anyway. I think the most efficient way is to just termi 阅读全文
摘要:
1、纵表转横表:纵表结构 TableA横表结构 TableB方法一: 1: select Name, 2: sum(case Course when ‘语文‘ then Grade else 0 end) as 语文, 3: sum(case Course when ‘数学‘ then Grade else 0 end) as 数学, 4: sum(case Course when ‘英语‘ then Grade else 0 end) as 英语 5: from TableA 6: group by Name 7: 2、横表转纵表的"SQL"示例 横表结构: TE... 阅读全文
摘要:
Case I. Web代理的方式 (on Server A) 即用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面,由该页面代替用户页面完成交互,从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题,但要求A网站提供Web代理的支持,因此A网站与B网站之间必须是紧密协作的,且每次交互过程,A网站的服务器负担增加,且无法代用户保存session状态。Case II. on-Demand方式 (on Server A) MYMSN的门户就用的这种方式,不过 MYMSN中不涉及跨域访问问题。在页面内动态生成新的<script>,将其src属性指向别的网 阅读全文
摘要:
SEO(Search Engine optimiz)是这几年很流行的一个缩写短语,简而言之就是是自己的系统网站更容易被搜索引擎收录提高网站的PR值。我们可以通过很多方法对我们的网站优化,搜索引擎优化就成了一门学科。这里我不准备大言优化大学问,只是说说自己的体验,窥一斑而知全豹,通过一个小小的实例了解什么是SEO的思想。想必做过网站的同志们都处理过超链接的问题,一个<a href=”#”></a>让这个网站丰富多彩,走向世界,搜索引擎在搜索时,爬虫会自动爬取这些超链接,看是否有价值,从而决定收录数据等待用户搜索。众所周知Javascript是无法被大部分爬虫爬取的,如果爬 阅读全文
摘要:
曾经刚接触时多线程,认为甚是简单,短短的几行代码就可以借助封装好的方式实现自己的多线程。 这几天学习在做C/S小项目时间碰见一个调试异常,才让我真正沉下去认识线程,幸亏还有当年所学操作系统的知识,线程的调度知识,认识才更深一步。在这里我将以前的调试异常截图,这篇文章就从此处入手,解释我对线程的肤浅认识。提示信息如下图所示:仔细看代码,发现项目中的列表框(listBox)是在UI主线程中的,而引起异常操作的地方发生在逻辑处理的又一个线程之中,在非UI线程调用UI线程,修改其属性造成了这样的异常:“线程间的操作无效”,我知道只要在UI线程的构造函数关闭线程调用异常检测就可以避免这个提示,程序... 阅读全文
摘要:
字符型转换为字符串// C 货币2.5.ToString("C"); // ¥2.50// D 10进制数25.ToString("D5"); // 25000// E 科学型25000.ToString("E"); // 2.500000E+005// F 固定点25.ToString("F2"); // 25.00// G 常规2.5.ToString("G"); // 2.5// N 数字2500000.ToString("N"); // 2,500,000.00// 阅读全文
摘要:
开篇编译,简单的说,就是把源程序转换为可执行程序。从hello world 说程序运行机制里面简单的说明了程序运行的过程,以及一个程序是如何一步步变成可执行文件的。在这个过程中,编译器做了很多重要的工作。对底层该兴趣的我,自然的,也就迫切想搞清楚编译的内部实现,也就是编译的原理。这篇文章主要说的是编译器前端,词法分析器的原理,最后会给出一个词法分析器的简单实现。介绍编译简单的说,就是把源程序转化为另一种形式的程序,而其中关键的部分就是理解源程序所要表达的意思,才能转化为另一种源程序。可以用一个比喻来说明问题:人A和人B想要交谈,但是他们都不知道彼此的语言,这就需要一个翻译C,同时懂得A和B的语 阅读全文
摘要:
2 内存泄漏2.1 C++中动态内存分配引发问题的解决方案假设我们要开发一个String类,它可以方便地处理字符串数据。我们可以在类中声明一个数组,考虑到有时候字符串极长,我们可以把数组大小设为200,但一般的情况下又不需要这么多的空间,这样是浪费了内存。对了,我们可以使用new操作符,这样是十分灵活的,但在类中就会出现许多意想不到的问题,本文就是针对这一现象而写的。现在,我们先来开发一个String类,但它是一个不完善的类。的确,我们要刻意地使它出现各种各样的问题,这样才好对症下药。好了,我们开始吧!/* String.h */#ifndef STRING_H_#define STRING_ 阅读全文