-
[综合] 内存管理(11)——深拷贝浅拷贝
1、暂时不考虑用IO进行深拷贝,全手工。 2、浅层拷贝,就是只拷贝类的第一层成员,而且如果成员是引用类型,则引用同一份。 3、深层拷贝,把对象引用的所有直接、间接的对象都拷贝一份。完全的一份拷贝。如果实现深层拷贝?需要耐心或者使用IO流。 4、MemberwiseClone()是protected方...
91
热度 -
[综合] 委托和事件(15)——简单回顾委托
1、什么是委托? 通俗:就是一个能存放符合某种格式(方法签名)的方法指针的清单。 2、委托创建方式 准备一个方法:stringHelloU(stringuName){//方法代码} 声明委托:delegate返回值类型委托类型名(参数) 例子:delegatestringDGSayHi(string...
77
热度 -
[综合] I/O(2)——文件流,FileStream,字符串和字节数组转换
1、文件流:文件路径、文件操作。 FileStream 2、FileStream对象表示在磁盘或网络路径上指向文件的流。 3、使用FileStream类对文件系统上的文件进行读取、写入、打开和关闭操作。 4、FileStream对输入输出进行缓冲,从而提高性能。 5、为什么不用File.ReadAl...
124
热度 -
[综合] Socket(2)——SOCKET网络编程:Socket相关概念
1、socket的英文原义是“孔”或“插座”。作为进程通信机制,取后一种意思。通常也称作“套接字”,用于描述IP地址和端口,是一个通信链的句柄。(其实就是两个程序通信用的)。 2、socket非常类似于电话插座。以一个电话网为例。电话的通话双方相当于相互通信的2个程序,电话号码就是IP地址。任何用户...
45
热度 -
[综合] Socket(4)——Socket的通讯过程
1、服务器端: 申请一个socket。 绑定到一个IP地址和一个端口上。 开启侦听,等待接授连接。 2、客户端: 申请一个socket。 连接服务器(指明IP地址和端口号)。 3、服务器端接到连接请求后,产生一个新的socket(端口大于1024)与客户端建立连接并进行通讯,原侦听socke...
5
热度 -
[综合] Socket(5)——Socket方法
------------------相关类-------------------------- 1、IPAddress类:包含了一个IP地址。 2、IPEndPoint类:包含了一对IP地址和端口号。 -------------------方法们------------------------- 3...
49
热度 -
[综合] Socket(7)——Socket扩展
1、如果实现传送文件,接收数据是文件还是文字? 2、设计协议: 把要传递的字节数组前面都加上一个字节做为标识。0:表示文字,1:表示文件。即: 文字:0+文字(字节数组表示)。 文件:1+文件的二进制信息。
34
热度 -
[综合] 线程和进程(3)——安全调用线程的步骤
1.声明方法。2.声明委托类型。3.创建委托对象。4.启动线程。5.在线程调用的方法里通过Control的Invoke方法执行委托。 示例: publicForm1(){InitializeComponent();//TextBox.CheckForIllegalCrossThreadCalls=f...
52
热度 -
[综合] 【C#】面向过程(1)——第一个C#程序
创建第一个控制台程序并且调试运行。 为什么要从控制台程序开始?不要把精力放到表现层,而是把精力放到写代码上。无论控制台还是Winform还是ASP.Net最难的是写代码,而不是拖控件。 唯一需要学的三条控制台指令:Console.WriteLine:打印输出、Console.ReadLine:从控制...
49
热度 -
[综合] IDE(14)——VS系列(14)——【C#】VS开发环境介绍
1、解决方案管理器:解决方案、工程、文件。 2、拖动视图、关闭/打开视图、重置窗口布局。 3、C#源文件一般以cs结尾。即使没有VS也能用记事本打开。 4、C#程序的入口是Main函数,在Main中写代码就行,暂时不用关心其他部分是什么意思。 5、错误列表。见到编译错误不用慌。错误排除演示。常见错误...
89
热度 -
[综合] 【C#】面向过程(2)——C#语法
1、从上到下一条条的依次执行。过去的就让他过去吧,不会返回头执行:inti1=3;inti2=5;inti3=i1+i2;i1=9;。 2、大小写敏感。String和string都行是另外一个问题。命名两个变量或函数时,名字一样只是大小写不一样而已也不行。但是在引用时大小写一定要一致。 3、函数参数...
92
热度 -
[综合] 【C#】面向过程(3)——变量
1、把变量看成放数据的容器。 2、定义变量的方式:类型变量名;inti3;变量只是容器,必须放进去值才有意义,否则就是一个“杯具”。 3、strings1=null和strings1不一样。 4、变量的类型:不同类型的容器放不同的东西。不能在int类型的变量中放字符串。 5、变量不能放和变量类型不兼...
15
热度 -
[综合] 【C#】面向过程(4)——变量的命名
1、命名规则:第一个字符必须是字母或者下划线(_),其后的字符可以是任意个数字、字母、下划线。不能全部使用C#的关键字,比如class、namespace、new、void等。判断方式:VS中亮蓝色的就是关键字。看颜色分辨是否是关键字。 2、这也是类、函数等的命名规则。还可以使用中文变量名(类名、函...
57
热度 -
[综合] 【C#】面向过程(5)——常用基本数据类型
1、string、int、char、boollong等。bool的取值:true、false。int的表示范围。long有多long 2、为什么输出"要用转义符"\"",因为编译器默认是遇到"开始字符串,再遇到"是结束字符串,但是如果遇到前面有\的"就不把它当成有字符串起始意义的"。\表示不要把\后...
58
热度 -
[综合] 【C#】面向过程(6)——运算符、表达式、赋值
1、+、-、*(乘)、/(除)、%(求余) 2、+可以用作字符串连接,其他不可以。 3、++(自增)、--(自减) 4、运算符优先级:i1+i2*i3、(i1+i2)*i3。不要变态,括号是王道。 5、变量可以和字面量混合运算。 赋值 6、赋值运算符=,让左边变量的值等于右边的计算结果。这就能解释令...
70
热度 -
[综合] 【C#】面向过程(7)——布尔运算
1、相等判断:==,不要和=混淆。WriteLine("{0}",i==1);WriteLine("{0}",i=1);的区别。 Console.WriteLine("{0}",i=1);//C#中赋值表达式也有值,它的值表示为赋值后变量的值 2、不等判断:!= 3、大小比较:<、>、&...
64
热度 -
18
热度 -
[综合] 【C#】面向过程(13)——枚举
1、确定数量、确定值的几个取值:东西南北、男女、上中下。 enumGender{male,female} enumQQStatus{online,offline,hidden} 2、枚举的用法,QQStatusstatus=QQStatus.online; 3、和用字符串比起来,用枚举的好处就是限定...
59
热度 -
[综合] 【C#】面向过程(14)——数组
1、保存多个值。几乎任意类型都可以声明数组。 2、int[]nums={5,3,8} 3、int[]nums=newint[3] 4、int[]nums=newint[3]{5,3,8}//个数和声明数必须一致 5、int[]nums=newint[5]{5,3,8}//错误 6、使用索引器访问指定...
37
热度 -
[综合] 【C#】面向过程(15)——集合(8)——数组——foreach循环
foreach循环: string[]names={"tom","jerry","lily"}; foreach(stringnameinnames) {Console.WriteLine("我的名字{0}",name); } 1、和for的区别:for可以不逐个遍历,比如每隔一个遍历一个,或者可以...
98
热度