
2.3) Java C#
文章平均质量分 83
C#, Java
聪明的笨蛋
这个作者很懒,什么都没留下…
展开
-
SQLite简介,C#调用SQLite
当我们用到海量数据时一般会用Oracle,SQL Server,DB2,Sybase,MySQL等数据库来保存和管理数据.如果只是程序中需要保存少量数据的话直接整到注册表里,或者保存到一个XML文件中.那如果数据量刚好不多不少,用Oracle这样的数据库有点小题大作,没有必要.有个XML保存的话存取速度又比较慢.咋整呢?这时用SQLite这个小型的嵌入式数据库就是非常理想的选择.它用起来...原创 2012-09-13 16:07:56 · 16079 阅读 · 1 评论 -
C#序列化成XML注意事项
最常用的序列化是把某个类序列化成二进制文件.但有时我们也会把类序列化成xml文件.假如有如下一个类class Arwen{private Hashtable table = new Hashtable();private TimeSpan time = new TimeSpan(0, 0, 1);public Hashtable Table{get { return原创 2012-11-21 17:40:11 · 2284 阅读 · 0 评论 -
C#调用系统API指定快捷键
快捷键的作用大家都清楚,就是快捷嘛,操作起来方便.用电脑的人很少有没用过Ctrl + C 和Ctrl + V的. 其他很多软件也有各种快捷键.电脑自然没那么聪明,知道我们敲哪些键然后给出相应反应,这都得我们自己写代码实现啊.指定快捷键有两种方式.方法一.当应用程序某个页面获得焦点时,直接写一个该页面的KeyDown事件处理函数就行,非常的简单.我们大多数时候就用的这种快捷键.方法二.在任何原创 2012-11-16 17:48:11 · 2977 阅读 · 0 评论 -
C++与C#对比学习:预编译与编译机制(二)
常用预处理指令 C++中常用预处理指令前面讲了主要有四种1.include引用头文件 2.条件编译#define #ifdef等 3.#define定义宏 4.progma 1.include引用头文件我们经常会看到#include "ABC.h" 和#include 这样的写法. "ABC.h"这样带个h的预编译时直接在当前项目目录上去找.而这样的是去系统目录中.那原创 2012-10-26 18:32:37 · 3207 阅读 · 0 评论 -
C++与C#对比学习:预编译与编译机制(一)
源代码的翻译简介我们知道机器其实是比较笨的,它只认识0101这样的机器语言.你用高级语言写的源代码对机器来说就像地球人看火星文一样,没法整明白的.必须要经过中间很多翻译环节.通常来说分为如下四步,实际上每一步都相当于在做翻译中的一小部分工作.1.预编译阶段,也叫预处理.顾名思义就是在处理之前预先做些准备工作.比如你写的#include #define这样的预编译指令,还有一些注释,编译原创 2012-10-26 17:00:27 · 2528 阅读 · 0 评论 -
C#序列化,反序列化(Serialize,Deserialize)
如果要保存运行程序过程的数据要么保存到数据库中,要么新建一个普通的文件,然后把数据保存进去.但是这两者有个缺点就是,不能把原有数据的结构也保存进去.比如一个类中的字段值保存进去后再读取出来必须再解析下才行.序列化技术让你省去了解析的过程.保存后再读取时直接得到一个class序列化的方式有三种:BinaryFormatter,SoapFormatter,XmlSerializer1.Bina原创 2011-11-16 10:46:27 · 6999 阅读 · 0 评论 -
C#正则表达式(3):注释,分组,向后引用,零宽断言,贪婪
注释 任何程序语言都会有注释.不然很多代码不容易看懂啊.像正则表达式这种表达式如果来个几千行,没一点注释,你想不看得吐血都难啊.注释的格式是(?#comment)其中comment就表示注释的内容比如abc[\d(?#this means digit)]* 它就等同于abc[\d]*不过这样加注释更容易让人晕.所以大部分时候用的是那一种方式,是要结合函数里的参数一起用.RegexO原创 2012-06-14 21:03:48 · 5693 阅读 · 1 评论 -
C#常用类库简介(二)
System与mscorlib这两个dll中的类库是我们平时用的最多的.由于这两个dll中的很多命名空间都是相同的,也就是说很多命名空间是同时处于这两个dll中.所以接下来以命名空间分类来讨论下. System常用的基本类型都差不多在这命名空间下面了.比如string , Int16,int32,object,类型转换,数值计算.另外还有类Console. System.IO原创 2012-11-02 14:44:20 · 4866 阅读 · 0 评论 -
C#常用类库简介(一)
我们知道安装了.NET Framework后,里面有非常多的类库,可能有些类我们一辈子都不会去用到.但大概知道有哪些类,以后想用的时候就可以很容易找到.所谓类库就是很多事微软的人给你做好了,给只要简单的调用下就行了.这里主要讲下.NET 2.0,3.0与3.5中的类库.类库的组织要查看类库中的所有信息你打开Object Browser就行,然后可以在Browse下拉列表中选对应的.NET版原创 2012-11-02 12:02:54 · 21744 阅读 · 0 评论 -
什么叫编译时和运行时
以前经常听说编译时和运行时的概念.但没太搞明白具体代表啥意思.后面花了点时间研究了下.总算知道个大概意思了.编译时编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,C#中只有CLR能识别的MSIL.另外还有啥链接器.汇编器.为了了便于理解我原创 2012-10-24 15:52:19 · 27897 阅读 · 17 评论 -
C++与C#对比学习:消息,事件(一)
窗体(windows),事件(event),消息(message) 我们大部分人用的操作系统都是微软的windows系列.windows顾名思义是窗口,窗体.它最大的特点就是几乎所有操作都是图形界面.在面向对象开发中是一切皆对象,那在windows的操作中是一切皆窗体.窗体背后对应的是消息机制.是以消息以基础,以事件为驱动.所谓窗体就是我们能用眼睛看得到的一个个图形界面,几乎任何原创 2012-09-19 16:28:09 · 2486 阅读 · 0 评论 -
C#版本的故事
这年头啥东东都喜欢过段时间整个啥新版本出来.汽车,手机如此,软件就更是如此了啊.比如啥Iphone 4,Iphone 5,Windows 8,Oracle 12C,SQL Server 2010. 版本号的一些命名规则大部分时候是在名字后面加些数字表示不同的版本.其中以加上年份号最为简单明了啊.比如Visual Studio 2008.但大部分人还是不用这个方式.因为年份号中没有带来更原创 2012-10-15 21:22:58 · 4673 阅读 · 4 评论 -
C++与C#对比学习:内存管理
我们知道计算机最重要的资源就是CPU和内存了.CPU的话我们貌似不能直接去操作,都是操作系统去管.而内存的话分为内核区和用户区.内核区是由操作系统管理,我们只能通过一些API去间接操作.而用户区就可以让应用程序去使用了.我们编程大部分时候就是在用户内存区中折腾来折腾去. C++内存分区C++的内存一般分为栈(stack),堆(heap),自由存取区,全局/静态存储区,常量存储区,代原创 2012-09-13 20:47:50 · 1979 阅读 · 0 评论 -
C#简单聊天程序
假如有服务器端程序,ChatServer和客户端程序ChatClient.实现客户端向服务器端发送信息的简单功能.运行步骤,1.先是服务器端start listen,2.然后客户端connect.3.客户端发送消息 只要服务器端start listen了,然后客户端也connect了.这样建立起连接后.接受发送信息就方便了,只要用writer,reader去操作Networ原创 2013-03-21 14:49:46 · 2125 阅读 · 0 评论 -
C++与C#对比:强制类型转换
强类型与弱类型语言像C++,C,Java,C#这些主流的编程语言都是强类型语言.而一些脚本语言则是弱类型的,比如vbscript , javascript.1.强类型语言简单的理解就是当定义了一个变量之后就会指定一个固定的类型,并对应一个固定的内存块大小.比如有int , double ,long这一个个的类型.并且一旦一个变量被指定为某个类型后就不能被当成其他类型用.除非做转换在C+原创 2012-12-29 21:07:32 · 6019 阅读 · 1 评论 -
Java初学者入门简介
之前一直搞C++,C#的开发,Java只在大学的时候稍了解了一点.现在工作中有用到Java,又得再来学学了啊.要学Java首先自然得布署一个开发环境.主要是安装JDK和Eclipse.其中JDK就跟C#中的.Net Framework,Eclipse就像Visual Studio这开发环境.不过我们平时安装VS的时候也把.Net Framework打包进去了. JDK , JRE,...原创 2013-11-28 11:33:55 · 1956 阅读 · 0 评论 -
JavaScript面向对象(一):封装
面向对象常用概念一讲到面向对象,马上就会想到封装、继承、多态3个主要特性。不过JavaScript不是面向对象语言,只是基于对象的语言。JS中的封装和继承跟C++,Java差异比较大,里面没有子类和父类的概念,也没有类和实例的区分,只是通过prototype来模拟实现类似的效果。封装: 简单的理解就是有把属性(变量)、方法(函数)放到一个类中。并且通过限定属性、方法为私有或公共来隐藏内...原创 2015-10-27 19:31:34 · 1859 阅读 · 0 评论 -
JavaScript面向对象(二):继承
JS类的继承JS类继承的方式有几种,这里讲两种比较简单易懂、有代表性的。 方法1:通过applyfunction father(){this.job = "president";}function son(){father.apply(this,arguments);this.info = "student";}var ss = new son();document...原创 2015-10-27 20:03:43 · 1708 阅读 · 0 评论 -
JS操作json简单示例
什么是JSONjson(JavaScript Object Notation)是一种轻量级的数据交换格式,可以把它看成跟xml是完全同一类东东,只不过用的另外一套格式规范。json的结构就两种: 对象和数组(1)对象用中括号括起来的一组键值对,{key:value,key:value,...},可以简单的把它类比成一个字典结构。(2)数组就是(1)对象的集合,跟常用的程序语...原创 2016-01-15 14:59:10 · 2934 阅读 · 0 评论 -
Unicode(UTF-8, UTF-16)令人混淆的概念
为啥需要Unicode我们知道计算机其实挺笨的,它只认识0101这样的字符串,当然了我们看这样的01串时肯定会比较头晕的,所以很多时候为了描述简单都用十进制,十六进制,八进制表示.实际上都是等价的,没啥太多不一样.其他啥文字图片之类的其他东东计算机不认识.那为了在计算机上表示这些信息就必须转换成一些数字.你肯定不能想怎么转换就怎么转,必须得有定些规则.于是刚开始的时候就有ASCII字符集(Ame...原创 2012-09-07 16:46:34 · 232 阅读 · 0 评论 -
Ajax简单示例
1.Ajax简介:当用户单击一个支持AutoPostBack按钮或下拉列表框时就会给服务器发送一个请求,服务器再把完整的页面传送给客户机,也就是刷新了整个页面.这样给用户的体验就很不好.而Ajax技术就是让页面只有某一部分刷新.Ajax的全称是:Asynchornous JavaScript and XML.2. 一个Ajax应用的简单例子:1.新建一个web site.从工具箱AJA原创 2011-11-06 10:54:45 · 836 阅读 · 0 评论 -
C++与C#对比学习:类型系统(一)
1.类型系统简介我们认识事务时总喜欢先分个类,然后研究每个各类的特性.在编程语言里面把也会把所有基本内容分门别类.你首先想到的自然是int,long等基本数据类型,然后就是自定义的各种类型(class).这样分门别类有蛮多的好处.一是可以针对不同种类的数据在内存中分配不同大小的内存块,二是可以减少错误.因为不同类型的数据会具有不同的特性,可以进行不同的操作.比如会检查函数参数类型,如果类型原创 2012-09-07 17:16:28 · 2997 阅读 · 0 评论 -
C++与C#对比学习:switch
平时碰到分支条件判断最常用的是if else语句,不过有时要是分支条件太多用switch就更直观,方便一点.先举两个简单的例子.C++:int num = 2;switch(num){case 1:coutcase 2:coutcase 3:cout //break可省略default:cout//default 非必须,可以省略} C#:int n原创 2012-09-06 17:49:42 · 2923 阅读 · 1 评论 -
WinForm控件焦点的使用
在C#的桌面应用程序开发中,一般是一个页面(Form),然后里面摆着很多个控件(control). 所谓焦点就是你当前选中了哪个控件,该控件就获得了焦点.比如你用鼠标点下某个控件,或者通过快捷键选中某个控件. 如果是可编辑的区域会有一个一闪闪的竖线在那,如果不可编辑的一般会有些高亮显示. 焦点的用处是啥焦点的概念不会在代码中经常用到.但有两个我们很熟悉的场景里会常用到.一个场景原创 2012-11-16 15:58:26 · 16717 阅读 · 2 评论 -
WinForm控件(1):Form
要用控件时我们都是先new 一个Form 然后往里面拖控件.Form可以看成一个大容器.里面可以放各种控件.Form也是我们通常意义上说的窗口或页面.在Properties窗口查看Form的属性时,会发现一大堆,看得眼花.点击下属性窗口左上角的Categorized把属性分类下.可以看到共有9大类.Appearance,Behavior,Layout,Window Style,Misc,Foc原创 2013-05-14 17:28:23 · 2982 阅读 · 0 评论 -
C++与C#对比学习:函数(四)重载函数匹配
重载函数匹配与美女挑老公的对比我们知道重载函数中可以形参个数相同,但类型不同.而C++中双允许做比较灵活的隐式类型转换.所以调用函数时怎么精确的匹配到要想的函数就是一个问题.此时一般分三个步骤去匹配(1)先把所有重载函数找出来.把形参个数相同的先选出来.形参个数不同的就直接剔除掉.这相当于是海选,比如人家美女找老公,先看第一感觉,如果第一感觉不好.你进入海选的机会都没有.(2).然原创 2012-10-13 22:57:54 · 2247 阅读 · 0 评论 -
类设计的5个基本原则
我们常说啥面向对象三大特性:封装,继承,多态.另一种说法是:抽象,继承,动态绑定然后就是面向对象五大设计原则,面向对象的设计其实说到底就是类的设计嘛,没有了类就自然不能叫面向对象了.当然了像C#中还有所谓的接口(interface),把它理解成一个特殊的类好了.我觉得面向对象的应用中最难的就是类的设计,怎么设计好一些类没有固定标准,只有一些参考原则.所以设计类不只是技术活,而且是个艺术活.原创 2013-03-15 03:49:20 · 18459 阅读 · 3 评论 -
C++与C#对比学习:函数(五)克隆函数,面向接口编程思想
我们知道C++中有复制构造函数的概念,C#其实也有复制构造函数的,但平时我们一般没有提到这个说法,而且基本上不这么用.C#中常用到的克隆函数.它们实现的功能基本类似,都是拷贝一些值.但复制构造函数是在调用构造函数实例化一个类时直接拷贝另外一个对象的值,而克隆函数是等你实例化完了之后再拷贝另外对象的值.为啥需要克隆函数克隆,顾名思义,是复制一个啥东西.我们有时需要把一个对象中的内容复制以原创 2012-10-14 11:24:26 · 2840 阅读 · 0 评论 -
C++与C#对比学习:类初始化
类和柏拉图的理念世界 我们知道面向对象编程中到处是一个个的类,但类只是个概念性的东西,不是个实体,不占内存,你没实例化之前也不能用它.只有把类实例化成一个对象后,它才是一个真正存在的实体.占有内存,能被我们使用.类就有点像柏拉图所说的理念世界一样,柏拉图认为存在着两个世界,一个是我们生活于其中的现实世界,与之对立的是理念世界,理念世界有些啥东东呢?那是个永恒不变的世界,由一堆堆的理念组成,比原创 2012-09-23 13:44:14 · 2561 阅读 · 0 评论 -
C# static readonly const用法
const 常量1.它可以用来修饰类的字段或局部变量.const修饰的变量只能是值类型,不能是引用类型.其实准确的说它也能修饰引用类型,只是引用类型只能为null,不能实例化.那这样的引用变量也等于没啥用处的啊.比如const int[] array = {1,2,3}是错的.不过const int[] array = null;是对的2.在声明时要赋值,赋值以后不能再改.它修饰的变量原创 2012-06-07 09:31:33 · 1966 阅读 · 4 评论 -
LINQ(Language Integrated Query)(2):预备知识,扩展方法,Lambda
扩展方法,Lambda跟Linq一样是C#3.0出现的新特性.扩展方法和Lambda(拉姆达表达式)在Linq中使用得很多,但也可以不依托Linq在其他地方独立使用.比如Lambda在委托和事件中就用得多.扩展方法扩展,顾名思义就是在原有的基础上增加些啥东东.和分部类达到的效果有点类似.我们知道定义class时在前面加个partial,则可以在分开的几个文件中编写类的代码.编译时会合并成一原创 2012-06-18 15:11:17 · 1115 阅读 · 0 评论 -
C#正则表达式(5):命名空间System.Text.RegularExpressions下面的类简介2
类Match ,MatchCollection 我们通过某个条件去匹配字符串时,有时会得到几个符合条件的子字符串.如果只想要第一次匹配到的子字符串就用函数Regex.Match().这个函数的返回类型是Match.我们通过Match.Value就可以得到子字符串的值.如果要想得到所以符合条件的子字符串就用函数Regex.Matchs().这个函数的返回类型是MatchCollect原创 2012-06-15 17:42:21 · 3699 阅读 · 0 评论 -
C#正则表达式(5):命名空间System.Text.RegularExpressions下面的类简介1
在命名空间RegularExpressions里有下面这些对象,10个类,一个代理,一个枚举类型Classes ClassDescriptionCapture Represents the results from a single subexpression capture. Capture represents one substring原创 2012-06-15 15:25:43 · 15654 阅读 · 1 评论 -
C#正则表达式(4):平衡组,递归匹配
看到平衡组,递归匹配这样的太充满术语性的名词又要头大了啊.其实简单点讲就是怎么去匹配那些互相匹配并且互相嵌套的字符对.比如(),[],{}这样的配对的括号.如果你写代码时某个函数很长很长,那些嵌套的{}会把你搞晕了,不知道哪个配哪个了啊.那编译时人家编译器怎么知道呢.它就是通过类似平衡组的理论去识别.还有html,xml里面会有一堆那肯定就乱套了.这里同样也用到平衡组类似的理论先来讲点C#原创 2012-06-14 22:22:11 · 5241 阅读 · 2 评论 -
C#正则表达式(2):常用的特殊字符(元字符,限定字符)
正则表达式中的限定符和元字符: 元字符就是它是一个特殊的字符,可以代表某个字符或某一类字符.限定符就是指某个字符出现的次数 特殊字符 意思 例子 \跟字符串的转义字符一样,它也用来转义的.比如$是个特殊的字符.要匹配$的话就得用\$^匹配字符串的开头位置^a匹配arwen.但不匹配ba原创 2012-06-14 16:36:06 · 11156 阅读 · 1 评论 -
C#正则表达式(1):入门简介
刚接触正则表达式时可能会觉得很晕乎.其实它的作用是很简单的,只不过实现的细节方面有些复杂.正则表达式是用来解析字符串的.而解析字符串不外乎是达到下面几种目的 1.验证某一长串字符串中是否有符合某个条件的子字符串2.从长字符串中提取符合某个条件的子字符串3.把符合条件的子字符串替换成另外的字符串4.把一个字符串分割成几个小字符串 正则表达式的复杂主要是体现在怎么指定那个"原创 2012-06-14 15:19:32 · 2500 阅读 · 1 评论 -
C#使用Des加密
DES(Data Encryption Standard)算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法.哎理论的东西就不多说了,很容易让人头痛,我们只要有个概念:有对称加密和非对称加密这两种类型.对称加密:只有一个密钥,加密数据和解密数据时都用它.打个比方,跟我们平时开门的门锁一样,关门开门都用的一个锁匙.密钥就相当于是钥匙原创 2012-05-22 15:40:36 · 1313 阅读 · 1 评论 -
C#获取系统相关信息_详细异常信息
从用户的角度来说,当程序出现异常时只要有给点简单的提示就行.但从开发者的角度来说就需要非常详细的信息,这对追踪Bug很有用.异常相关的详细信息可以记录到日志文件中.这样你自己测试时比较方便点,而且做用户支持时也方便,如果用户碰到啥问题要他们把错误日志发过来就行.异常处理语句通常的形式一般如下:try{ //some code}catch(Exception ex){原创 2012-05-22 14:19:36 · 1845 阅读 · 0 评论 -
C# 函数参数传递(按值和引用)很容易混淆的概念啊
先来说下C#中的数据类型.分值类型和引用类型两大类. 值类型:直接存储数据的值,保存在内存中的stack(堆栈)中引用类型:存储对值的引用,实际上存储的就是一个内存的地址.引用类型的保存分成两块,实际值保存在托管堆(heap)中.实际值的内存地址保存在stack中当使用引用类型时先找到stack中的地址,再找到heap中的实际值.也就是说保存引用类型时要用到stack和heap原创 2012-06-08 13:31:40 · 7933 阅读 · 0 评论 -
c# break continue return 用法
Break表示退出当前循环.return 表示整个函数的结束,它后面的语句不再执行.例如1.在switch中使用breakpublic void FunTest{int a = 1; switch (a) { case 1: //几个case可以写到一起的,比如这原创 2012-06-06 19:00:07 · 1528 阅读 · 0 评论