.NET之美
见证大牛成长之路
这个作者很懒,什么都没留下…
展开
-
操作XML
操作XML 千呼万唤始出来,BB了这么多东西,咱们终于可以写点东西了,前方内容很多,楼主正在考虑是否可以分开写. 因为啥东西多呢?前面说了那么多关于XML的东西,什么转换啊,DTD啊,手都说了,我要是不给你演示一遍你说我骗你咋办? 首先记住一点:操作XML文档时,操作的单元是节点,首先要知道XML文档有哪些节点类型.在.NET中,有关XML的类型原创 2016-04-23 21:23:18 · 5264 阅读 · 0 评论 -
线程
线程 本来楼主是想把反射搞完的,但是因为楼主才疏学浅,自己还没搞明白,所以就先把楼主明白的贴上去,等以后楼主有了一定得知识储备再累忽悠大家,最近几天咱们说说最后一部分内容多线程的问题. 线程的概念 线程是代码的执行序列或者执行路径.线程与进程有些相似之处,它类似于一个轻量级的进程:一个操作系统中可以运行多个进程,一个进程内可以运行多个线程.每原创 2016-04-26 20:11:14 · 488 阅读 · 0 评论 -
Type类
Type类 反射的作用 反射的作用有这么几个:查看和遍历类型和类型成员的元数据;动态创建类型实例,动态调用所创建的实例的方法,字段,属性;迟绑定(late-Binding)方法和属性. 获取Type对象实例 反射的核心是Type,这个类封装了类型的元数据,也是进行反射的入口.当获得了类型的Type对象后,就可以根据T原创 2016-04-26 19:50:41 · 707 阅读 · 0 评论 -
反射初步
反射初步 首先来认识一下反射,咱们每次咱认识一个新东西的时候,需要了解这么一个情况,这个东西是啥,它的作用是啥,我学他有啥用,搞明白了这三件事就算可以了. 说实话,楼主学了.NET也得一年多了吧,一次反射也没用到过,当然楼主涉世未深,也不了解反射,最近几天楼主和大家一起研究研究反射的东西. 反射初步 假设你在开发一个据点预订系统,在订原创 2016-04-26 09:51:29 · 701 阅读 · 0 评论 -
CLS----公共语言规范
CLS----公共语言规范 前面说过了关于CTS是一套语言的规则定义,就可以开发一套语言来符合CTS了.假设你新开发的语言叫做N#,它所实现的CTS非常有限,仅实现了其中很少的一部分功能,它与CTS和C#语言的关系可能如图这样: 那么现在就有一个问题:由C#编写的程序集,能够引用由N#编程的程序集吗?肯定不能,虽然C#和N#同属于CTS旗下,但原创 2016-03-14 20:49:44 · 2787 阅读 · 0 评论 -
CTS----公共类型系统
CTS----公共类型系统 现在假设你正在开发一款新的语言,这种语言和C#或VB.NET一样,在编译后也能生成CIL代码,也可以在.NET环境下运行,那么首先需要什么呢? 根据前面说的知识,要开发的新语言相当于CIL的高级语言版本,所以实际上要做什么并不是由新语言决定的,而是由CIL来决定的.因此,需要一套CIL的定义,规则或者标准.这套规则定义了我们的原创 2016-03-14 20:03:32 · 1273 阅读 · 0 评论 -
不使用委托实现Observer模式
不使用委托实现Observer模式 Observer设计模式中实际上只包含两类对象,一个是Subject(主题),一个是Observer(观察者).他们之间的角色是:Subject是被监视对象,它往往包含着Observer所感兴趣的内容.Observer是观察者,它观察Subject.当Subject中的某件事情发生的时候(通常是它所感兴趣的内容改变的时候)原创 2016-02-29 21:04:33 · 855 阅读 · 0 评论 -
BCL和FCL
BCL和FCL 楼主最近这几个月都没有写代码,一直在看些理论方面的知识,感觉代码的东西都忘了,唉,昨天尽然连SQL查询语句的where用法都忘了,楼主表示现在这样到底对不对,因为楼主感觉代码这个玩意和理论性比来说不值得一提,楼主是这么想的,世界上的语言有很多,要想都学明白很难,如果咱们学方法,会了方法就能一通百通,那岂不是很好?这是楼主的愚见,如有不原创 2016-03-13 19:49:50 · 6806 阅读 · 1 评论 -
委托和方法的异步调用
委托和方法的异步调用 在通常情况下,如果需要异步执行一个耗时的操作,我们会新建一个线程,然后让这个线程去执行代码.但是对于每一个异步调用都通过创建线程来进行操作显然会对性能产生一定的影响,同时操作相对也会变得繁琐.在.NET中可以通过委托进行方法的异步调用,就是说客户端在异步调用方法时,本身并不会因为方法的调用而中断,而是从线程池中抓取一个线程去执行该方法,自身原创 2016-02-28 19:37:34 · 2686 阅读 · 0 评论 -
线程的基本操作
线程的基本操作 System.Threading命名空间下的Thread类提供了线程的基本操作.通过创建一个Thread对象,并执行他的Start()方法,可以新建并运行一个新的线程.新线程也需要一个入口,入口方法有ThreadStart委托和ParameterizedThreadStart定义,他们分别定义了无参数的入口方法和带参数的入口方法.us原创 2016-04-27 18:35:37 · 702 阅读 · 0 评论 -
线程同步
线程同步 CLR为每个线程分配了线程栈,用于保存本地变量,这样可以保证本地变量是独立的,案例: static void Main(string[] args) { ThreadStart ts = new ThreadStart(Print); new Thread(ts).S原创 2016-04-27 21:18:46 · 3627 阅读 · 0 评论 -
XML概述
XML概述 首先说一下,这一部分咱们重点讲解一下关于在.NET中操作XML,前面好像说过关于LINQ to XML,不知打你们还记得多少?反正楼主是一点都不记得了.哈哈 今天学的知识是为了什么?为了明天的荒废... 这是韩寒说的! 韩寒说的对啊! 这句话是我说的!!! 为啥要有XML呢? XML----可扩原创 2016-04-21 19:49:05 · 1974 阅读 · 0 评论 -
文件传输
文件传输 前面的案例都是传输字符串.还有一种常见的情况,就是在服务端和客户端之间传输文件. 计入,客户端显示了一个菜单:当输入S1,S2或S3时,分别向服务端发送文件Client01.jpg,Client02.jpg,Client02.jpg;当输入R1,R2或R3时,分别从服务端接受文件Server01.jpg,Server02.jpg,Serve原创 2016-04-20 21:08:08 · 3893 阅读 · 0 评论 -
异步传输字符串
异步传输字符串 前面说过服务端的四种方式:1.服务一个客户端的一个请求2.服务一个客户端的多个请求3.服务多个客户端的一个请求4.服务多个客户端的多个请求 前面说到第三种了,对于最后一种最实际的情况前面说的是将内层的while循环交给一个新建的线程去让它来完成. 除了这种方式以外,还可以使用一张更好地方式----使用线程池中的线程原创 2016-04-19 16:30:48 · 1566 阅读 · 0 评论 -
中英文字符大小和文本边界问题
中英文字符大小和文本边界问题 也不知道是楼主的问题还是CSDN的问题,楼主最近的博客在贴代码的时候出现了问题,明明把代码贴进去了,还是没有代码的效果,好吧.先这样吧,过几天再看看到底是啥情况. ASCII,UTF-8,Unicode编码下的中英文字符大小 当对字符串进行发送和接受时,编码方式很关键,服务端与客户单显然要采用相同的编码方式才行,原创 2016-04-19 15:27:11 · 2733 阅读 · 0 评论 -
同步传输字符串
同步传输字符串 接下来考虑着一种情况,完成一个简单的文本通信:(1).客户端将字符串发送到服务端,服务端接受字符串并显示(2).服务端将字符串由英文的小写转换为大写,然后发回给客户端,客户端接受并显示. 客户端发送,服务端接受并输出 1.服务端程序 可以在TcpClient上调用GetStream()方法来获得连接到远程计算机的网络流NetworkStream.当在客户端调用时,它获得连接服务端的原创 2016-04-19 12:47:53 · 7380 阅读 · 0 评论 -
基本操作
基本操作 服务端对端口进行监听 首先需要进行的,就是开启本地计算机上某一端口的监听.创建一个控制台应用程序,将项目命名为ServerConsole,表示服务端.如果想要与外界进行通信,第一件事就是开启对端口的监听,这就像是计算机打开了一个”门”,所有向这个”门”发送的请求(“敲门”)都会被系统接收.在C#中可以通过下面几个步骤来完成,首先使用本机原创 2016-04-17 16:31:29 · 3690 阅读 · 0 评论 -
网络编程基本概念
网络编程基本概念.NET框架在SYstem.Net.*命名空间下提供了一系列的类用于网络通信.从层次上来说,这些类可以分为两组,一组位于System.Net.Sockets命名空间下,提供底层的,基于传输层协议的通信,如TCP,UDP;一组位于System.Net命名空间下,提供高层的,一局应用层协议的通信,如HTTP,FTP,SMTP. 好长时间没写点东西原创 2016-04-17 14:28:14 · 765 阅读 · 0 评论 -
序列化
序列化 基本操作 本来楼主是想学点安卓的知识的,楼主发现学习一门新知识需要付出的代价太大了,加上学的太多,就没有一门精通的了,所以楼主暂时的想法是先把关于.NET的知识学透了. 流属于一种基础的概念和功能,就好像string和int这些基元类型一样,在很多场合下都会用到.在前面通过文件复制,读取文件内容的实例讲述了流的基本概念和操作.本节将会原创 2016-04-15 21:21:54 · 1295 阅读 · 1 评论 -
订阅者方法超时的处理
订阅者方法超时的处理 前言 订阅者除了可以通过异常的方式来影响发布者以外,还能通过另一种方式:超时.一般所说的超时,指的是方法的执行超过了某个指定的事件,而这里将含义扩展了一下,凡是方法执行的时间比较长,就可以认为它是超时了.这个”比较长”是一个比较模糊的概念,2秒,3秒,5秒都可以视为超时.超时和异常的区别就是超时不会影响事件正确的触发和程序的正常运行,却原创 2016-02-27 21:00:38 · 1192 阅读 · 0 评论 -
委托进阶
委托进阶 前言 尽量每天都写点东西,就算是没有一点有价值的东西,也想写点关于自己的东西.我的博客一般都是半日记的形式出现的.将来等我老了,说不定,我会感谢互联网带给我的这些回忆,我现在就很感谢互联网给我了很多东西.接下来谈定正事. 前面说了不少基础知识,大家有没有想过一个问题,为啥委托定义的返回值都是void呢?尽管这是非必须的,但是原创 2016-02-26 21:52:10 · 743 阅读 · 0 评论 -
.NET框架中的委托和事件
.NET框架中的委托和事件 现在假设有个案例,一个高档的热水器,当水温超过95度的时候:扬声器开始发出语音,告诉你水的温度;液晶屏也会改变水温的显示,以提示水已经快烧开了. 现在需要写这个程序来模拟这个烧水的过程,我们将定义一个类来代表热水器,将它取名为Heater,它代表水温的字段temperature,当然,还有必不可少的水加热方法BoilWater(),一原创 2016-02-26 15:12:46 · 728 阅读 · 0 评论 -
对象的排序
对象的排序 对象的排序和对象的筛选一样很重要,在对业务对象进行排序时,不能使用ObjectDataSource作为数据源,因为它只支持对DataView,DataTable和DataSet的自动排序.但是仍然可以对GridView编写Sorting事件的处理方法,通过拼装SQL语句,使用”Order by”子句来完成排序. 和进行筛选的思路一样,如果原创 2016-03-02 20:41:35 · 826 阅读 · 0 评论 -
对象的筛选
对象的筛选 前面说了泛型和委托,说完筛选和排序之后会说LINQ,所以这段时间的知识会起到一个承上启下的作用.主要是讲解一下.NET框架中最常用的接口之一:IComparable;还会说点在LINQ出现之前对象筛选和排序的方法. 对象的筛选 不知道大家接触过SQL语句没有,楼主是学过了,这里就当你学过了吧,如果我们要对数据进行筛选,首先想到的是原创 2016-03-01 21:53:24 · 1784 阅读 · 0 评论 -
泛型与集合类型
泛型与集合类型 说起泛型时,就不得不说到泛型集合类型,因为使用反省能够极大的提高集合类型的性能和安全性. 为了看看使用泛型能为集合类型带来什么好处,先看看不用泛型时集合类型的表现.最典型的非泛型集合类型就是ArrayList了,这里便以它为例作为介绍,考虑一下下面的代码: ArrayList list = new ArrayList();原创 2016-02-06 16:04:37 · 793 阅读 · 0 评论 -
C#类型基础----不可变类型
C#类型基础----不可变类型 前言前面说过string类型是一种特殊的引用类型,成为不可变类型.本次就为大家说下什么是不可变类型. 正文假如要设计一个存储收信人地址的类型(Type),叫做Address,它包含了这样几个属性:Province 省City 市Zip 邮编 如果要对Zip格式原创 2016-01-05 20:53:06 · 1399 阅读 · 0 评论 -
C#类型基础----对象复制
C#类型基础----对象复制 前言有的时候,创建一个对象可能会非常耗时,比如对象需要从远程数据库中获取数据来填充,又或者创建对象需要读取磁盘文件.此时,如果已经有了一个对象,再创建新对象时,可能会采用复制现有对象的方法,而不是重新建一个新的对象.本次内容,咱们就一起探讨一下关于对象的复制. 正文 浅度复制浅度复制和深度复制是以如何复制对象的成原创 2016-01-03 19:17:24 · 7738 阅读 · 0 评论 -
C#中的泛型
C#中的泛型 前言现在的.NET版本是5.0了,但是在1.1的时候,最受诟病的一个缺陷就是没有对泛型的支持.你想想,对于一种强类型的语言来说,我写了一个针对整数的排序,但是现在又需要对字符串排序,然又需要对double排序等等,强类型语言又不像弱类型语言一样所有的类型都使用一个关键字定义就行,比如JS就都是使用var来定义变量.所以说,强类型语言如果没有原创 2016-01-17 22:02:35 · 607 阅读 · 0 评论 -
C#类型基础----对象判等
C#类型基础----对象判等 前言前面说了一点关于值类型和引用类型的东西,如果你能稍微有点收获,那将会是楼主的万幸!今天说一点关于对象判等的东西.因为对象复制(克隆)的一个前提条件就是:要能够知道复制前后的两个对象是否相等,所以,再战看对象赋值的内容前,有必要先了解如果进行对象判等. 正文先定义用作示例的两个类型,他们代表一维坐标系(直线)上的地点,原创 2015-12-30 20:14:29 · 784 阅读 · 0 评论 -
C#类型基础----引用类型
C#类型基础----引用类型 前言上一讲说了一下值类型的部分内容,虽然没有什么有意思的东西能吸引大家的注意,也没啥好的代码让大家参考一下,但是楼主的水平实在有限,各位看官如果不嫌弃的话,还是看看吧,如果对你的生活或者学习有那么一丝帮助的话,都算是楼主的万幸. 正文当声明一个引用类型变量,并使用new操作符创建引用类型实力的时候,该引用类型的变量会被分原创 2015-12-28 12:02:03 · 700 阅读 · 0 评论 -
CLR----公共语言运行时
CLR----公共语言运行时 前面提到过:程序集包含了CIL语言代码,而CIL语言代码是无法直接运行的,需要经过.NET运行时进行即时编译才能转换为计算机可以直接执行的机器指令.接下来就是了解一下这个过程是如何实现的. .NET框架的核心部分:CLR(Common Language Runtime公共语言运行时),有时也叫.NET运行时(.NET Run原创 2016-03-16 19:25:50 · 3490 阅读 · 0 评论 -
LINQ的预备知识
LINQ的预备知识 不管进行任何类型的项目开发,都免不了和数据打交道.数据的来源多种多样,可以是内存中的一个集合,比如数组,集合,列表;可以是数据库,比如SQL Server;可以是一个XML文件;可以是一张Excel表格.无论何种数据源,都免不了对其数据进行操作,比如筛选,排序,链接等.这些操作的实现方式,因为数据源的不同而各不相同,这多少给开发者带来了不原创 2016-03-04 21:36:30 · 568 阅读 · 0 评论 -
集合
集合 LINQ的主要用途是对数据源进行查询,而最常见的一种数据源是集合,它表示为内存中的一个对象,例如数组(string[],int[]),列表(List,ArrayList).在LINQ的大家庭中,不论底层的数据源如何,对于应用程序层来说,都是使用同一的LINQ查询方式.在本节中,楼主将用LINQ to objects威力,向大家说明LINQ查询.原创 2016-03-06 17:24:20 · 477 阅读 · 0 评论 -
文件
文件 本章主要包含了文件,流和序列化,主要是给”.NET中的加密和解密”和”网络编程” 文件 大家每天都会接触不同的文件,比如,打开一个.txt文本文件,记录一个电话号码;打开一个.jpg图片文件,浏览一张照片;打开一个.avi视频文件,看一部电影.那么,文件是什么呢?按照自上而下的顺序,可以分三个层级来回答. 最上面一层,是应原创 2016-03-22 19:54:55 · 681 阅读 · 1 评论 -
CIL----公共中间语言
CIL----公共中间语言 首先要了解的就是C#程序源码在编译之后会得到什么样的一个文件.大家知道,过去使用VC++生成的可执行文件,经过预编译,编译,汇编,链接几个步骤后,最终生成的可执行文件就已经包含了处理器的本地代码(Native Code),支持他运行的知识操作系统的和本地的机器指令集.那么采用C#编译器生成的文件又是啥呢?现在需要引入程序集这个概念:在原创 2016-03-10 20:29:19 · 1742 阅读 · 0 评论 -
事件的由来
事件的由来 前面的三个方法不知道大家都还记得吗,那三个方法都定义在Program类中,这样做是为了方便理解,在实际应用中,通常都是GreetPEople在一个类中,ChineseGreeting和EnglishGreeting在另外一个类中.现在大家已经对委托有了一定得认识,所以我想对上面的例子进行一下改进.结社将GreetPeople()放在原创 2016-02-25 21:41:10 · 750 阅读 · 0 评论 -
C#中的委托和事件
C#中的委托和事件 前言 委托和事件在.NET框架中应用的很广泛,但是楼主因为知识尚浅,用到的不多,但是听前辈们说,这个委托和事件就像两座大山,只要翻过了这两座大山,.NET的知识可能就会一通百通了.最近几天咱们就一起来说说什么是委托,为啥要用委托,事件的由来,.NET框架中的委托和事件委托中方法异常和超时的处理,委托,与异步编程,委托和事件对Obser原创 2016-02-25 17:09:32 · 6497 阅读 · 1 评论 -
认识.NET平台
认识.NET平台 可能很多人问什么事.NET框架,它包含了哪些内容?为开发程序提供了哪些支持?很多朋友对这类问题的第一反应可能是.NET框架所提供的庞大类库以及编写代码所采用的C#语言,实际上,远远不止这些. 要描述.NET框架,自然会遇到与其相关的一系列专业的技术术语和缩写,相信大家已经见过很多了,比如:CLI,CIL,CTS,CLS,CLR,JI原创 2016-03-10 18:39:03 · 962 阅读 · 0 评论 -
LINQ查询运算符
LINQ查询运算符 楼主先声明一点,如果你单纯的指望看看楼主的博客就能把LINQ看明白了,楼主觉得是不现实的,楼主的博客里连个像样的案例都没有,我写博客原因无非就是起到一个在你的心里有一个这样的感觉,让你了解一下有这么一回事,你看看然后忘了就可以了.Do Not Go Down! 上一讲中,为了方便讲解,引入了Where(),Select()和Order原创 2016-03-09 17:43:49 · 2167 阅读 · 1 评论 -
流
流 先想一个问题:将D:\文件夹下的图片headqq.bmp复制到C:\根目录下.暂时不要考虑是如何用代码实现,先考一个他的过程. 首先,程序运行在内存中,而文件位于磁盘中. 接下来,需要建立一个类似管道的东西将文件和内存中的应用程序连接起来,并且将文件按字节发送.注意:在应用程序中,为了保存接收到的文件字节,需要创建一个Byte原创 2016-04-01 20:31:47 · 1760 阅读 · 3 评论