随笔分类 -  c#

摘要:UDP协议是不可靠的协议,传输速率快 服务器端: 客户端: 阅读全文
posted @ 2019-03-12 19:45 彩色的梦 阅读(903) 评论(0) 推荐(0)
摘要:网络通信的基本知识: 首先应该确定IP地址和端口号,端口号为了确定计算机的哪个进程,比如同一主机是微信还是qq通信 要进行通信首先应该确定一种协议,通常用TCP可靠和UDP不可靠协议,当然带来的速度也会不同,多数游戏中采用TCP协议。 面向连接套接字通信步骤: 服务端: 先申请一个Socket,绑定 阅读全文
posted @ 2019-03-11 20:15 彩色的梦 阅读(3381) 评论(0) 推荐(0)
摘要:多线程中很有可能存在争夺一个变量资源而产生死锁或者不被期望的结果。 测试类; 多线程类: 如果没有lock锁,线程t1和t2会产生死锁,主要是对于公共资源num的占用不当; 解决方式是lock(objLock)使得线程顺序执行,就不存争夺资源的情况,值得注意的是objLock是引用类型object。 阅读全文
posted @ 2019-03-10 15:14 彩色的梦 阅读(158) 评论(0) 推荐(0)
摘要:开启一个线程的方式: 线程其实就是操作系统中提到更加小的运行单元,比如一个进程可以存在多个线程,线程的执行不一定按顺序,并且从外部看来是同时进行的。 我们举一个线程的一般定义,当然在定义之前需要先导入线程命名空间 using System.Threading; 如果对于某一个线程比较简单,可以使用L 阅读全文
posted @ 2019-03-09 20:12 彩色的梦 阅读(158) 评论(0) 推荐(0)
摘要:查询两个表中相似的部分,或者取各自的一部分。 联合查询同样会遇到排序和其他的表现形式: 阅读全文
posted @ 2019-03-07 21:03 彩色的梦 阅读(3229) 评论(0) 推荐(0)
摘要:对于已经定义好的类,对其进行拓展方法 下面我们给出对于String类和Int类的拓展方法的举例: ***我们注意的是拓展的类必须是静态类,而且方法也应该是静态的, 应该使用一些关键字表明这个方法是类的拓展方法,this int name,拓展的是Int类。 Linq查询用到一些拓展方法 阅读全文
posted @ 2019-03-07 19:59 彩色的梦 阅读(869) 评论(0) 推荐(0)
摘要:Linq支持主要的查询: 1、对象集合(IEnumerable或者IEnumerable<T>) 2、SQL数据库 3、XML文档 先对对象集合做一个解释: 查询的是集合,包括List<T>,Dictionay<T,K>,HashTable<T>,ArrayList这些集合都继承了IEnumerab 阅读全文
posted @ 2019-03-07 08:40 彩色的梦 阅读(693) 评论(0) 推荐(0)
摘要:c#当中的特性分为系统特性和自定义特性,就现在我们学习两种系统特性。 特性一:Obsolete,检查方法是否过时。当然在其中的方法重载中,默认是不报错的,最后的参数可以自己选择。 特性二:Conditional,实现条件编译,阻止一个方法的进行,比如测试方法。 当然实现条件编译还有使用“预编译”指令 阅读全文
posted @ 2019-03-06 19:26 彩色的梦 阅读(953) 评论(0) 推荐(0)
摘要:动态调用,确实有点看不懂,心态有点崩, 又是Assembly类,还有Type类,干嘛呢。 阅读全文
posted @ 2019-03-05 19:46 彩色的梦 阅读(146) 评论(0) 推荐(0)
摘要:反射可以读取程序集中代码的内容,程序集一般指(dll或exe文件)。 反射中Type类,这个类太强大了,可以获取到另一个类的名称,命名空间,程序集,以及这个类中的字段,属性,方法。可以方便我们查看某个类的方法,属性,字段。 一些运行技巧:Console.ReadLine()作用 从控制台中读取用户输 阅读全文
posted @ 2019-03-04 19:51 彩色的梦 阅读(199) 评论(0) 推荐(0)
摘要:委托和事件相同的功能 区别1:委托可以声明一个局部变量,而事件不可以 区别2:委托可以作为方法的参数,事件不可以 事件可以看做是委托的特殊化对象。 阅读全文
posted @ 2019-03-03 15:53 彩色的梦 阅读(369) 评论(0) 推荐(0)
摘要:一、一般委托方式 步骤:先实例化委托,注册方法的委托,调用委托。 二、使用匿名方法 将实例化委托和委托方法进行了合并,最后调用委托。 三、使用lambda表达式 从委托 匿名方法 Lambda表达式,不断的简化程序的代码量。 阅读全文
posted @ 2019-03-03 15:16 彩色的梦 阅读(541) 评论(0) 推荐(0)
摘要:一、Action泛型委托 和之前委托最大区别在于不用定义委托,直接实例化委托(申明就可以),泛型其实就是选择数据类型,进行使得程序更加安全,并且也实现了委托的重载,最多选择16个参数。 委托还有一个好处是,当执行委托时,委托中的一个变量发生变化,会引起所有注册方法的变化,就是我们所说额观察者模式。 阅读全文
posted @ 2019-03-03 11:09 彩色的梦 阅读(541) 评论(0) 推荐(0)
摘要:一个委托里可以注册很多方法,执行委托,就会执行注册的所有方法,这样实现了解耦合 委托最大的好处是对于方法而言,注册的是方法。 具体实例: 委托运用的具体步骤: 1:定义委托 2:委托进行实现化 3:委托注册(方法) 4:委托调用 委托和类类似,需要定义和实例化,只不过委托将方法作为变量进行传递。 阅读全文
posted @ 2019-03-03 10:46 彩色的梦 阅读(159) 评论(0) 推荐(0)
摘要:定位“元”字符 using System.Text.RegularExpressions; string Result = Regex.Replace(str, "^", "Girl,"); 定位到字符串最前 string Result = Regex.Replace(str, "$", ",Gir 阅读全文
posted @ 2019-02-28 20:21 彩色的梦 阅读(257) 评论(0) 推荐(0)
摘要:using System.IO;using System.Runtime.Serialization.Formatters.Binary; 序列化:对象转化为文件的过程(字节流) 反序列化:文件(字节流)转化为对象的过程 对一个对象序列化过程: 1:对象应该是可以被序列化[Serializable] 阅读全文
posted @ 2019-02-28 19:46 彩色的梦 阅读(495) 评论(0) 推荐(0)
摘要:对于文本文件不需要转化为二进制文件 其中StreamReader和StreamWriter数据流进行实现,整体上较为简洁。 阅读全文
posted @ 2019-02-27 21:22 彩色的梦 阅读(234) 评论(0) 推荐(0)
摘要:整体的思路:先获取到源文件和目标文件,我们选择流文件进行转移,就需要先读取数据流和写入数据流操作,然后分配内存地址,然后对二进制流进行真正的读写操作,直到全部读出为止。 有人不让我喝鸡汤 阅读全文
posted @ 2019-02-27 20:53 彩色的梦 阅读(380) 评论(0) 推荐(0)
摘要:Directory类 目录管理 一些文件基本操作,创建文件目录,删除目录,获得当前目录 _Path是将要创建的路径,另外还需要两个引用, using System.IO;using System.Reflection; Path类 路径管理 Path.ChangeExtension(); 改变拓展名 阅读全文
posted @ 2019-02-26 17:10 彩色的梦 阅读(1165) 评论(0) 推荐(0)
摘要:ctrl+c+s 外加代码 F12 转到定义 ctrl+F5调试 一些补全命令 svm Main函数的补全命令 prop 属性的补全命令 阅读全文
posted @ 2019-02-25 20:02 彩色的梦 阅读(219) 评论(0) 推荐(0)