
学习笔记——.Net
文章平均质量分 82
孤独旅者
这个作者很懒,什么都没留下…
展开
-
如何打印图片
选中一张图片,把这张图片传到打印预览的窗口里面。这里的关键在于如何使大分辨率的图片完整的打印出来,使图片能够根据打印纸张的大小进行相应的缩放,避免图片溢出而打印不全。首先要获取打印要纸张的宽和高,然后获取要打印图片的分辨率,最后判断是否将图片旋转90度显示,以方便平铺到打印机的纸张上。打印预览的窗体由VS工具箱里面的控件提供,这个控件是PrintPreviewDialog,它可以向用户显示关联原创 2013-07-31 16:32:13 · 4659 阅读 · 0 评论 -
【黑马程序员】一个简单的小游戏——骑士飞行棋
这是一个简单的小游戏——骑士飞行棋的实现方法。本游戏由两名玩家对战。下面是本游戏的效果图:先上本游戏实现方法的代码:namespace 骑士飞行棋{ /// /// 玩家类 /// class Player { public string name; //玩家姓名 public int posit原创 2013-09-22 18:58:21 · 1719 阅读 · 0 评论 -
【黑马程序员】集合框架和自定义集合
集合的功能可以通过接口来实现,该接口不仅没有限制我们使用基本的集合类(例如:System.Array),而且我们还可以创建自己的定制集合类。这些集合可以专用于要枚举的对象(即要从中建立集合的对象)。这么做的一个优点是定制的集合类可以是强类型化的,也就是说,从集合中提取项时,我们不需要把它们转换为正确的类型,反而可以直接使用。另一个优点是可以获得专用的方法,比如可以提供获得项子集的快捷方法,或其它一原创 2013-08-31 11:07:40 · 805 阅读 · 0 评论 -
结构类型、结构函数和构造函数
在初学C#的时候,有三个概念可能会容易搞混——结构类型、结构函数、构造函数。 结构类型是由几个数据组成的数据结构,这些数据可能有不同的的类型。结构就是把这些不同类型的数据组合在一起,形成由用户自定义变量类型的数据,以方便用户使用。结构使用struct关键字来定义,语法如下: struct {原创 2013-08-26 20:00:02 · 3487 阅读 · 0 评论 -
【黑马程序员】多线程的方法重入问题
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------由于多线程是让CPU在“同一时间”响应用户不同的操作,因此在程序运行过程中,很容易产生一些让人意想不到的结果。在说方法重入问题之前,先看一个示例吧。有一个如图所示的窗体应用程序,窗体里面有一个TextBox控件和原创 2013-09-23 16:43:22 · 1108 阅读 · 0 评论 -
【黑马程序员】多线程的带参方法
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------多线程的实现是让程序的主界面可以被操作的同时,也可以执行其它的代码,从而产生相应的功能。这些代码一般是放在方法里面,这个方法可以是无参方法,也可以是有参方法。当使用无参方法时,我们可以直接用Start()方法启动线程原创 2013-09-23 20:46:44 · 865 阅读 · 0 评论 -
【黑马程序员】Socket编程实现内网连接的问题
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------利用Socket编程实现内网的客户端和服务端的连接时出现了一个问题。主界面如图所示:点击启动服务按钮,执行的主要代码如下:private void btnBeginListen_Click(object se原创 2013-09-24 21:32:13 · 1335 阅读 · 0 评论 -
【黑马程序员】Socket编程实现服务端和客户端的交互
用Socket实现网络编程首先要创建一个Socket对象,Socket类位于System.Net.Socket命名空间,需要先行导入。创建Socket对象需要以下三个参数,这些参数都是枚举类型:①AddressFamily成员指定Socket用来解析地址的寻址方案,例如:InternetWork指示当Socket使用一个IP版本4地址连接;②SocketType定义一个要打开的Socket原创 2013-09-25 20:13:30 · 2255 阅读 · 0 评论 -
【黑马程序员】视频拓展——多线程聊天室客户端与客户端的交互
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------Socket不仅可以实现服务端与客户端的交互,而且还可以实现客户端与客户端的交互,就是从一个客户端发送消息,然后在另一个客户端接收,就好比我们的聊天软件。实现客户端与客户端的交互有两种方法可以实现。第一种方法是我们可原创 2013-09-28 16:58:23 · 1252 阅读 · 1 评论 -
【黑马程序员】Socket文件传输
我们利用Socket网络编程不仅可以传送文字,也可以传送文件。不论是文字还是文件,我们都需要先把它们转换为字节流(byte[]类型)才能传输。当接收的那一方的Recive()方法监听到有数据传送过来之后,就会把它从字节流转换回文字或文件。那么程序如何在接收到字节流的时候,判断它是文字还是文件呢?这就要求我们给这个字节流添加一个特殊标识,比如说,如果标识是0,它接收到的是文字,如果标识是1,那么它接原创 2013-09-28 14:52:57 · 846 阅读 · 0 评论 -
面向对象知识总结
面向对象总结 在软件开发中,我们应该遵循最基本的高内聚、低耦合的原则,也就是说程序中各个部分相互之间的依赖性越低越好,而它们之间的联系越紧密越好。面向对象设计思想可以很好的体现这一原则。我们可以从不同的事物中找出它们的共同点,然后抽象成一个类,这一类的事物拥有自己最基本的特点和行为。比如说,我们可以从各个不同的人这一实体中抽象出人类,所有人类的共同特点是都有自己的名字和年龄等,原创 2013-11-21 22:28:56 · 775 阅读 · 0 评论 -
【黑马程序员】网络通信机制和Socket的简单了解
在我们的电脑上,一般都会装有QQ、YY、或网络游戏等需要通过联网实现其功能的程序,那么计算机是如何通过网络来联系其它设备上的程序呢?先看下图:如图所示:假设有3台计算机通过网络互相联接,每个计算机都被分配有一个IP地址,计算机之间可以通过IP地址实现互相访问。如果计算机1想访问计算机3,就必须先通过计算机3的IP地址(192.168.1.3)找到计算机3,这样才能实现访问。现在计算机1和计算机原创 2013-09-24 16:34:17 · 1474 阅读 · 0 评论 -
给常用代码段添加快捷键
我们在VS中敲代码的时候,会经常重复性地敲一些代码段,比如:Console.WriteLine(); 、Console.ReadLine(); 。其中前一个代码段在IDE中有提供一个快捷键,我们先点击cw,然后再点两下Tab键,那么Console.WriteLine();这段代码就会自动填充。但是,后一个控制台读取功能的代码段在IDE中却没有快捷键。这时,我们可以通过如下步骤自己手动创建一个这样的原创 2013-11-25 23:38:18 · 1832 阅读 · 1 评论 -
正则表达式学习总结
正则表达式学习总结 有这样一个需求,根据一个网址提取出这个网站里面你需要的一些内容。比如,有一个网站的网址为http://search.51job.com/job/46629381,c.html,需要提取出这个网站页面所有的职位名称或其它信息。在C#中,我们可以根据它所提供的一些类来完成对这个页面的访问,如WebClient类。它可以把这个网站的页面内容以字符串的方式返回给调用原创 2013-12-02 22:35:01 · 906 阅读 · 0 评论 -
反射学习总结
反射学习总结 一个类中的成员包括字段、属性、方法和事件,这些成员都是这个类的元数据。反射就是在一个类的外部或它所在程序集外部,通过这个类的元数据,创建一个这个类的类型的对象,然后访问其中的成员。例如:有一个Person类,我们可以通过以下两种方法获得这个类的类型的对象: 第一种方法,用typeof()方法获取:Type tp = typeof(Person)原创 2013-12-02 22:41:14 · 777 阅读 · 0 评论 -
C#接口和抽象类的总结
一、接口的简单实现接口更好地实现了多态,体现了约定和实现相分离的原则。通过面向接口编程,可以降低代码间的耦合性,提高代码的可扩展性和可维护性。在面向对象编程中,提倡面向接口编程,而不是面向实现编程。面向接口编程意味着,开发系统时,主体架构使用接口,接口构成系统的骨架,这样就可以通过更换实现接口的类来实现更换系统。一个类实现的某个接口,就表示这个类具有了某种能力,这个能力具体体现在实现接口的方法原创 2013-10-04 16:16:30 · 2469 阅读 · 0 评论 -
C#垃圾回收和析构函数以及弱引用
在程序中,当我们每创建一个对象,就会在内存中开辟一个空间,用以存放这个对象。如果创建的对象多了,内存就会出现不够用的情况。这时我们就要把内存中不再使用的对象释放掉,避免内存的占用及程序的异常。这个过程就是垃圾回收。手动进行垃圾回收的方法是:GC.Collect(); ,但我们一般不会这么做,一来是因为我们声明的对象有可能还会被引用,而且在手动回收的时候会漏掉很多,二来VS为每个程序提供自动回收垃圾原创 2013-10-03 19:57:14 · 2371 阅读 · 0 评论 -
如何用代码将图片设为桌面背景
将图片设为桌面背景可以通过修改注册表来实现,但是使用注册表后必须重新启动计算机才能生效,所以最好选择调用系统API来实现这个功能。使用系统API的代码如下: #region 调用API //引入user32.dll [DllImport("user32.dll", EntryPoint = "SystemParametersInfo")] //声原创 2013-07-31 13:52:20 · 5380 阅读 · 0 评论 -
C#图像处理
C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) 一、各种旋转、改变大小注意:先要添加画图相关的using引用。//向右旋转图像90°代码如下:private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e){Graphics g = e.Gr转载 2013-08-01 00:42:41 · 1900 阅读 · 0 评论 -
C#中unsafe的使用
1. unsafe在C#程序中的使用场合:1)实时应用,采用指针来提高性能;2)引用非.net DLL提供的如C++编写的外部函数,需要指针来传递该函数;3)调试,用以检测程序在运行过程中的内存使用状况。2. 使用unsafe的利弊好处是:性能和灵活性提高;可以调用其他dll的函数,提高了兼容性;可以得到内存地址;带来麻烦是:非法修改了某些变量;内存转载 2013-08-01 16:08:44 · 4328 阅读 · 0 评论 -
删除图片时,报错“正由另一进程使用,因此该进程无法访问此文件”的处理方式
在做一个小项目时练习的时候,当我单击删除按钮删除图片时,却发生了异常,如下图:在网上搜索半天,可就是没找到解决方法,终于,经过我的不懈努力,在谷歌里面搜到了。原来,在PictureBox里面显示图片的的这一事件占据了程序的一个进程,当要删除这张图片的时候,这个进程仍然在执行中。就算让PictureBox先显示下一张图片,然后再删除也不行。因为要删除的那张图片被占用了,无法删除!面对这样的情况,原创 2013-08-03 00:55:47 · 6204 阅读 · 2 评论 -
如何获取网页源码
获取网页源码可以通过WebRequest类和WebResponse类。1.WebRequest类 WebRequest类是.Net Framework的请求/响应模型的abstract基类,用于访问Internet数据。使用请求/响应模型的应用程序可以用协议不可知的方式从Internet请求数据。此类在System.Net命名空间下。Request类的常用方法:方法原创 2013-08-05 16:39:45 · 3281 阅读 · 0 评论 -
Environment类——获取当前操作环境和平台的信息
本文转自:http://technet.microsoft.com/zh-cn/library/system.environment(v=vs.105).aspxEnvironment 类其他版本此主题尚未评级 - 评价此主题2013/3/11提供有关当前环境和平台的信息以及操作它们的转载 2013-08-05 16:49:33 · 1743 阅读 · 0 评论 -
IList与List的区别
已经有很多人讨论过IList和List的区别,恩,我也赞同其中的一些观点,其实他们二者也是有优有劣的,看你着重用在哪个方面,先贴一下我赞同的意见,基本上也都是网友们总结的。 首先IList 泛型接口是 ICollection 泛型接口的子代,并且是所有泛型列表的基接口。它仅仅是所有泛型类型的接口,并没有太多方法可以方便实用,如果仅仅是作为集合数据的承载体,确实,IList可以胜任。转载 2013-08-22 19:11:40 · 797 阅读 · 0 评论 -
C# 实现屏幕录像
下面是主要代码:(没有注释,不要骂人)[c-sharp] view plaincopyusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;转载 2013-08-09 20:17:56 · 2853 阅读 · 2 评论 -
C#综合揭秘——细说多线程
一、线程的定义 1. 1 进程、应用程序域与线程的关系进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。进程之间是相对独立的,一个进程无法访问另一个进程的数据(除非利用分布式计算方式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为多个独立的区域的。进程可以理解为一个程序的基本边界。应用程序转载 2013-08-10 16:36:43 · 659 阅读 · 0 评论 -
关于打印一个有趣的数字图形的问题
有这样一道题,即按照如下图形的规律打印出这个图形:这个图形外面一圈“*”号很容易打印,它的核心是怎样打印里面的数字。上面的数列可以把它看成一个二维数组,然后我们可以按照数组下标的变化分别给数组赋值。这时主要难点就是如何来确定下标的变化值。我们可以先把它拆分成几种情况,来观察它们变化的规律。假设n为行列数,i为1到n之间的数。当i=1时,数列为:当i=2时,数列为:当原创 2013-08-13 00:07:05 · 1357 阅读 · 0 评论 -
获取输入汉字的中文读音
在论坛上看到一个题目:要求输入一个汉字,输出这个汉字的所有读音(不含声调并去除重复)。这道题的关键在于要使用一个API,由于系统本身并没有默认带这个API的dll文件,所以就去微软下载了一个Microsoft Visual Studio International Pack 。这个包里面包函了东亚部分国家的语言的发音。然后添加这个dll文件,调用里面的属性和方法就可以得到这个字的读音的集合原创 2013-08-17 15:36:27 · 1405 阅读 · 0 评论 -
C#关键字operator的用法
peratoroperator 关键字用于在类或结构声明中声明运算符。运算符声明可以采用下列四种形式之一:public static result-type operator unary-operator ( op-type operand )public static result-type operator binary-operator ( op-type operand,转载 2013-08-31 20:23:18 · 2107 阅读 · 0 评论 -
Linq的简单介绍
Linq可以通过使用SQL语句的方式来处理非常大的对象集合,例如对集合进行过滤和排除等操作。Linq也允许查询大型数据库或复杂的XML文档,这大大简化了我们的代码编写。目前,有3个LInq变体:LInq to Objects、Linq to SQL和Linq to XML,它们为不同的数据类型提供了查询解决方案:Linq to Objects:为任意类型的C#内存对象提供查询,里面的方法适用于原创 2013-09-07 21:02:22 · 688 阅读 · 0 评论 -
Lambda 表达式
Lambda 表达式5.1 Lambda 的意义在Framework 2.0 以前,声明委托的唯一方法是通过方法命名,从Framework 2.0 起,系统开始支持匿名方法。通过匿名方法,可以直接把一段代码绑定给事件,因此减少了实例化委托所需的编码系统开销。而在 Framework 3.0 开始,Lambda 表达式开始逐渐取代了匿名方法,作为编写内联代码的首选方式。总体来转载 2013-09-03 20:01:55 · 781 阅读 · 1 评论 -
委托和事件学习总结
委托和事件学习总结 有如下图所示的两个窗体Form1和Form2,点击Form1窗体上的button1按钮,弹出Form2窗体,然后在Form2窗体上点击button1按钮,修改Form1窗体的背景色或是给Form1窗体的TextBox赋值。 按照最普通的想法,需要把Form1窗体对象作为一个变量传递给Form2窗体,并且把TextBox的修饰符原创 2013-12-02 22:38:28 · 913 阅读 · 0 评论