随笔分类 - C#基础
摘要:【C# dll反编译】 用工具打开exe、dll等就可以看到源码 工具参考此博客 DLL文件反编译(附:工具下载链接)_刘梦凡呀的博客-CSDN博客_dll反编译 【设置控制台不显示窗口】 创建控制台程序后,选中项目,右键,属性,输出类型选为“windows应用程序”,这样就没有dos窗口了。
阅读全文
摘要:1、创建控制台程序SocketTcpServer,注意引用using System.Net; using System.Net.Sockets; 新建类Client.cs,用来与客户端做通信(具体的交互逻辑)。注意引用using System.Net; using System.Net.Socket
阅读全文
摘要:【TCP】 服务器端:无目标插座升级为有目标插座后,就可以通过有目标的插座收发数据 客户端: 实战:此案例有利于理解Socket的工作流程。 缺点:服务器只能接收1个客户端的连接,因为只写了一个Accept;服务器与客户端都只能收、发一次 1、创建控制台程序SocketTcpServer,注意引用u
阅读全文
摘要:这些图片在项目文件中没找到,原来都存在了resx文件中。 属性界面的Image、BackgroundImage属性手动选择的图片会自动存储到resx文件中,之后这些图片源文件就可以删除了。resx中的图片可以导出保存。 如果是纯代码引用的图片,图片源文件不可以删除。 可以看出,resx中可以有字符串
阅读全文
摘要:说明:@符号的作用,省去转义字符\ "^\\+?[1-9][0-9]*$" 与 @"^\+?[1-9][0-9]*$" 等效 @"^(0?[1-9])|((1|2)[0-9])|(30|31)$" 一个月可能存在的天数 符号解释如下:括号只为逻辑清晰,无其他含义 ^开始 $结束 ?前的字符可有可无
阅读全文
摘要:1.限定字符串 用 @ 符号加在字符串前面表示其中的转义字符“不”被处理。 string fileName = "D://文本文件//text.txt"; string fileName = @"D:/文本文件/text.txt"; 2.让字符串跨行 比如SQL语句,不使用@符号时: string
阅读全文
摘要:Task类似后台线程。 先后任务:一个任务依赖于另一个任务。即有先后顺序。使用ContinueWith 后继任务,方法参数不可省略,类似线程池 一个任务A中启动一个新任务B,两个任务异步执行,可认为同时执行。 更深入内容参考: https://blog.csdn.net/qq3401247010/a
阅读全文
摘要:Thread调用含参方法,参数必须是object类。ThreadPool调用的方法,无论是否含参,方法必须有object类参数(可不用,但得有) 【线程】 using System; using System.Threading; namespace ConsoleApplication3 { cl
阅读全文
摘要:lock实现代码块只允许被一个线程访问 例如多个窗口售票,余票数的计算 using System; using System.Threading; namespace ConsoleApplication3 { class Program { int num = 10; void SellTicke
阅读全文
摘要:progressBar的Step属性设置为1 using System; using System.Windows.Forms; using System.Threading; namespace Demo1 { public partial class Form1 : Form { public
阅读全文
摘要:1、移动pictureBox控件即可 素材: using System; using System.Drawing; using System.Windows.Forms; using System.Threading;//引入线程 namespace Demo { public partial c
阅读全文
摘要:IO流操作文件内容,using System.IO;//引入命名空间
阅读全文
摘要:该类有三个方法: GetDirectories() 当前目录的子目录 GetFiles() 当前目录的文件列表 GetFileSystemInfos() 当前目录的文件、子目录,返回强类型FileSystemInfo数组
阅读全文
摘要:File类、Directory类,都是静态类,可以直接使用类名 FileInfo类、DirectoryInfo类,都是动态类,需要new对象,通过对象来操作 【文件的创建、复制、移动、删除】using System.IO; 【文件基本信息】 Name,文件名 FullName,完整目录(包括文件名)
阅读全文
摘要:接口,是一种协议规范,其中的属性、方法等成员只能定义,不能做其他操作。 接口中的成员,默认public,因此,成员无修饰符。 【格式】修饰符 interface 接口名称:接口列表{ 接口内容; } 通过类的继承来实现接口(成员的功能)。 接口成员的显示实现:如果接口列表的成员相同,那么在定义成员功
阅读全文
摘要:C#类的多态,通过在派生类(子类)中重写基类(父类)的虚方法来实现。 注意virtual、override关键字
阅读全文
摘要:1、封装 属性和行为封装起来,就是类。用户无需知道类内构成,会用即可。 2、继承 解决代码复用问题,具有共同的属性或行为的类可以通过继承节省代码。 3、多态 龙生九子,各有不同。子类继承父类,但子类有自己独特的属性或行为。
阅读全文
摘要:ref和out都是表示按引用传递。与指针类似,直接指向同一内存。 按值传递参数的方法永远不可能改变方法外的变量,需要改变方法外的变量就必须按引用传递参数。 传递参数的方法,在C语言里,用指针。在C#里,可以用指针,但是更通常也更安全的做法就是用ref。 关于params,参考 https://blo
阅读全文
摘要:在Java笔记中已经有关于静态的说明,C#学习中,再次记录下。 同一静态变量或方法,共享内存,共用同一块内存区域。其值会被多个对象改变。 可以理解为,盒子中只有一个苹果,张三咬了一口,李四从此盒子中拿取苹果时,是被咬过的苹果。 同一命名空间下的所有类都可以使用或改变全局静态变量,它只保留最新值。如在
阅读全文