C#
(≯^ω^≮)喵毛
这个作者很懒,什么都没留下…
展开
-
.NET 窗体传值
【窗体传值】采用委托来实现步骤:窗体1实例窗体2时,将输出方法传参给窗体2实例传参涉及到窗体2的构造函数在窗体2声明一个委托,存储方法 public delegate void 委托名(方法参数);创建一个该委托的字段 public DelSM _del;重写窗体2的构造函数,把传参的方法赋值给_del字段用_del字段来调用窗体1的方法,实现窗体2的数据,窗体1的方法name...原创 2019-08-17 17:58:15 · 239 阅读 · 0 评论 -
C# DateTime时间的方法
获取当前日期获取当前日期:string date = DateTime.ToShortDateString(); 格式:2019/8/9获取当前时间:string time = DateTime.ToShortTimeString(); 格式:17:59获取当前日期:string date = DateTime.ToLongDateString(); 格式:2019年8月9日...原创 2019-08-09 18:07:23 · 2391 阅读 · 0 评论 -
C# 类的多态:虚方法,抽象类,接口
实现多态的方法虚方法:将父类的方法定义为virtual,子类的方法定义为override//父类class Person{ //虚方法,可以被子类的同名方法覆盖 public virtual void M(){ }}//子类class Student:Person{ //子类方法想覆盖父类方法,需要加上override public override void M(){ }...原创 2019-08-06 14:46:51 · 188 阅读 · 0 评论 -
C# 序列化和反序列化
序列化: 将对象转化为二进制反序列化: 将二进制转化为对象作用: 传输数据,计算机是以二进制的形式传输数据。模拟两台电脑的数据【传送】和【接收】传送: 将类标记为可被序列化 [Serializable] //将类标记为可被序列化 class Person { private string _name; private int _age;...原创 2019-08-06 11:41:28 · 188 阅读 · 0 评论 -
C# StreamRead和StreamWrite
StreamRead //StreamRead读取文件 using (StreamReader sr = new StreamReader(path1, Encoding.UTF8)) { //判断是否读到文件的结尾,读到结尾就可以退出循环 while (!sr.EndOfStre...原创 2019-08-06 11:38:10 · 4100 阅读 · 0 评论 -
C# FileStream文件流
FileStream和File对比File:是一次性读取或写入文件,对内存的占用率比较高。操作小文件无影响,大文件程序容易卡。FileStream:是一点点的读取或写入文件,对内存的占用率比较低。操作字节,适合操作大文件。FileStream创建FileStream fs = new FileStream(@"文件路径",文件的打开,对文件的操作);//创建读取流FileStream ...原创 2019-08-06 11:37:03 · 901 阅读 · 0 评论 -
C# Dictionary字典集合
Dictionary字典集合和Hashtable集合相类似,都是键值集合。不知道键值集合的请先跳转学习一下:https://blog.csdn.net/shenqiankk/article/details/98216924Dictionary集合创建Dictionary集合:Dictionary<键值类型,数据类型> 变量 = new Dictionary<键值类型,数据...原创 2019-08-06 11:27:19 · 2289 阅读 · 0 评论 -
C# List泛型集合
List数组特点List泛型集合是存储单一的类型。List泛型集合长度是可变的。List方法List众多方法使用和ArrayList集合相似。创建List泛型集合:List<类型> 变量 = new List<类型>(); List<int> list = new List<int>();添加:list.Add(数据);添加数组元...原创 2019-08-06 11:26:03 · 540 阅读 · 0 评论 -
C# 类-属性
11原创 2019-07-28 17:07:02 · 2179 阅读 · 0 评论 -
C# 按键取值
使用Console.ReadKey().Key读取用户按键,他读取的类型是ConsoleKey枚举类型。ConsoleKey枚举类型包含所有的按键信息。“true”的作用:用户输入的按键是否显示,true表示不显示。 /// <summary> /// 等待玩家按键继续游戏,玩家1按A键,玩家2按L键 /// </summary>...原创 2019-07-28 16:10:31 · 1848 阅读 · 0 评论 -
C# 面向对象和类
11原创 2019-07-28 15:46:06 · 185 阅读 · 0 评论 -
C# 面向对象-继承
继承的作用图一:两个单独的类,老师和学生图二:把重复的字段、属性、方法做成Person类(父类),学生和老师不需要写Name和Eat的代码,一样可以调用。代码演示//人类,父类public Class Person{ peivate int _name; public int Name{ get{return _name;} set{_name = value;} }...原创 2019-08-01 17:56:43 · 211 阅读 · 0 评论 -
C# 方法练习-制作简易飞行棋游戏
using System;namespace _02_demo{ class Program { /* * 0代表地图格子□ * 1代表幸运盘◎ * 2代表地雷☆ * 3代表暂停▲ * 4代表时空隧道卐 */ public static ...原创 2019-07-28 13:19:50 · 4902 阅读 · 0 评论 -
C# StringBuilder类型
StringBuilderStringBuilder的数据值改变时,不需要开辟新空间,有直接修改的方法。所以StringBuilder在处理数据值变动时,比String要快得多。StringBuilder sb = new StringBuilder();sb.Append("123"); //在字符串末尾加上“123”sb.Append("456"); //在字符串末尾加上“456...原创 2019-07-31 18:11:57 · 226 阅读 · 0 评论 -
C# string字符串的方法(函数)
String是Char的只读数组string s = "abcdefg";Console.WriteLine(s[0]); //输出aString类型的方法(函数)把字符串【转换】成char数组:char[] chars = s.ToCharArray();把char数组【转换】成字符串:string s = new String(chars);计算字符串【长度】:int n =...原创 2019-07-31 18:10:57 · 1310 阅读 · 0 评论 -
C# 方法重载
方法重载的构成方法名相同方法的参数不同static void Main(string[] args){ int a,b; string s; double d; //重载的方法,可以接收五种形式的参数,同一方法根据参数执行不同的代码。 M(a); M(s); M(d); M(a,b); M(a,s);}//一下五个方法组成方法重载public static voi...原创 2019-07-26 20:08:31 · 1699 阅读 · 0 评论 -
C# 高级参数 out/ref/params
高级参数out参数ref参数params参数out参数一个方法中,可以返回多个不同类型的值原创 2019-07-26 17:32:18 · 212 阅读 · 0 评论 -
C# foreach循环遍历结构
foreach结构foreach(变量类型 变量 in 数组){ 按顺序循环遍历所有数组的元素,变量每次循环都代表数组特定索引的值}foreach使用foreach虽然属于循环结构,但不能对数组变量做赋值操作。作用: 主要作用是遍历元素//定义数组numsint[] nums = {1,2,3,4,5,6,7,8,9};//遍历数组nums内的所有元素foreach(int ...原创 2019-07-26 16:55:30 · 2335 阅读 · 0 评论 -
C# 泛型类
泛型概念: 实现将类型【参数化】,把类型编程可操作的抽象成员本质: 泛型就是【占位符】,可以被实际类型替换继承: 泛型类【只能】在泛型类之间继承,核心思想是【泛型最终需要被替换成具体类型】,如果继承系不能让泛型得到替换,那么这种继承关系是错误的。类型约束:传递的具体类型必须继承某个类class Test<T> where T: 类名称 ,要求T继承指定的类class T...原创 2019-08-19 15:09:53 · 386 阅读 · 0 评论 -
VMware虚拟机打开显示被占用,无法打开
删除所有.lck文件夹找到VMware虚拟机的文件目录,删除所有.lck文件夹,重新运行即可,还有问题可以尝试重启一下。原创 2019-08-19 20:10:47 · 10139 阅读 · 5 评论 -
C# 委托
委托作用:将多个参数相同的方法,进行委托统一调用,将参数和调用方法传递给委托,由委托调用。好处:可以将多个方法内相同的部分提取出来,根据参数和方法参数,调用需要的方法部分。核心:减少代码量,减少冗余重复的代码。泛型委托将委托方法定义为T类型(泛型),可以在调用函数时,规定参数的类型,从而达到方法参数多类型适用,减少代码量。匿名函数嵌到在参数内的完整函数(包括函数的方法体,从而省去再次...原创 2019-08-17 17:07:12 · 154 阅读 · 0 评论 -
XML:可扩展的标记语言
XML与HTML区别HTML:是显示页面,html的标签是规定好的,不区分大小写XML:是存储数据,xml的标签是自定义的,并且区分大小写。xml必须有根节点,且只有一个。<?xml version="1.0" encoding="utf-8" ?> 是XML的文件头,说明了xml文件的版本和编译方式<Books>...</Books> 是XML的根节...原创 2019-08-17 14:44:01 · 133 阅读 · 0 评论 -
.NET 单例模式
单例模式作用:只能创建一个对象步骤:将构造函数私有化提供一个静态方法,返回一个对象创建一个单例 public partial class Form2 : Form { private Form2() { InitializeComponent(); } //创建全局单例变量,存放单例对...原创 2019-08-16 19:50:16 · 1133 阅读 · 0 评论 -
C# .NET 工厂模式
工厂模式作用:将创建对象变成【统一】、【可管理】的过程。通过工厂模式可以实现对象的【单例】,避免重复创建对象。思想:【核心思想】是通过调用工厂类,传递对象参数,实现一个工厂类创建所有需要的对象。创建一个工厂类,实现参数化创建对象。放弃使用“new”来创建对象,改用工厂类的方法统一创建对象。工厂模式代码工厂类 class GameObjectFactory { ...原创 2019-08-21 19:31:23 · 485 阅读 · 0 评论 -
C# 连接MySQL数据库
步骤:原创 2019-08-21 16:47:12 · 30455 阅读 · 11 评论 -
C# 对MySQL数据的操作
增删查改原创 2019-08-21 16:30:38 · 797 阅读 · 0 评论 -
GDI+ 绘图方法
GDI绘直线步骤创建GDI对象:Graphics g = this.CreateGraphics();创建画笔对象:Pen pen = new Pen(Brushes.Red);创建两个点:Point p1 = new Point(20, 20); Point p1 = new Point(20, 20);绘制直线:g.DrawLine(pen, p1, p2);GDI绘制矩形步骤...原创 2019-08-15 16:18:12 · 2753 阅读 · 1 评论 -
GDI+ 绘制验证码
GDI绘制学习资料: https://blog.csdn.net/shenqiankk/article/details/99633134GDI绘制验证码创建5个随机数,存入字符串或者数组创建图形对象:Bitmap bmp = new Bitmap(150,40);创建GDI对象:Graphics g = Graphics.FromImage(bmp);循环5次,随机字体、颜色文本绘制每...原创 2019-08-15 16:17:50 · 317 阅读 · 0 评论 -
Unity 如何使用
新建项目Unity 项目目录表调节目录展示大小创建物体对象目录添加文件脚本运行设置打开脚本编写对象绑定脚本测试运行发布程序...原创 2019-08-23 18:27:30 · 739 阅读 · 0 评论 -
C# 多线程
多线程的目的让计算机“同时”执行多件事情。后台运行程序,不会影响到主界面的操作。解决单线程出现“假死”的现象。线程关键词创建新线程:Thread th = new Thread();告知CPU,新线程已经准备就绪:th.Start();终止线程,无法再重新启动:th.Abort();暂停线程一段时间:th.sleep(毫秒);前台线程只有所有前台线程都结束,程序才能关闭。...原创 2019-08-14 19:06:18 · 104 阅读 · 0 评论 -
SOCKET 网络编程:服务器和客户端
SOCKETscoket: 程序间的通讯方式,就像人们用【电话】通讯,程序用【SCOKET】通讯。SOCKET俗称【套接字】,是用来描述【IP地址】和【端口】,是一个通讯链的句柄。IP地址:用于查找计算机在网络中的位置端口号:用于查找程序在计算机的位置协议: 计算机之间联系的语言,需要统一的语言方式,计算机才能有效沟通。UDP协议:效率高,但不稳定,容易数据丢失TCP协议:安全,稳...原创 2019-08-14 19:05:48 · 2059 阅读 · 0 评论 -
Directory文件夹操作类
存储文件夹内所有文件的路径string[] path = Directory.GetFiles(@"文件夹路径");原创 2019-08-14 19:05:13 · 1252 阅读 · 0 评论 -
Winform应用程序 控件 窗体 事件
Winform是一种智能客户端技术,我们可以使用winform应用程序帮我们获取信息,或者传输信息。winform UI界面语言:XAML常用窗体属性:快捷键:【F4】 调出ClientSize 客户操作【界面大小】,【不计算】窗体边框和边界距离Size 整个【窗体大小】Name 窗体【对象命名】Text 窗体【文本内容】WordWrap 指示文本框是否【换行】Passwor...原创 2019-08-14 19:03:33 · 1996 阅读 · 0 评论 -
C# 音乐播放
//创建音乐播放器对象SoundPlayer sp = new SoundPlayer(@"C:\Users\shen\Desktop\01.wav");//如果不在创建对象时获取地址,可以用SoundLocation获取地址。只能用wav格式的音乐。// sp.SoundLocation = @"C:\Users\shen\Desktop\01.wav";//播放音乐sp.player...原创 2019-08-14 18:55:18 · 237 阅读 · 0 评论 -
Winform应用程序 MDI窗体设计
string s = TextBox.Text.Trim();原创 2019-08-14 18:53:01 · 464 阅读 · 0 评论 -
VMware如何传输文件:安装VMware Tools
如何安装:原创 2019-08-19 20:21:46 · 2318 阅读 · 0 评论 -
C# 装箱和拆箱
装箱将值类型转成引用类型。int n = 10; object o = n;拆箱将引用类型转成值类型。int n2 = (int)o;引用类型学习资料:https://blog.csdn.net/shenqiankk/article/details/97801939装箱和拆箱的关系装箱和拆箱的条件是:两个类型存在继承关系,所以string和int转换不存在装箱和封箱装箱和封箱会暂用...原创 2019-08-03 16:14:09 · 142 阅读 · 0 评论 -
C# 字符串的不可变性
字符串的不可变性指字符串是引用类型,在改变数据时,它会在内存【堆】开辟新空间存储新数据,然后内存【栈】的变量重新指向新数据。图一:图二:对字符串 s 重新赋值 “456”存在的问题:【堆】中的“123”数据已经没有用,但是堆并不会删除或者覆盖。解决方法: 清理资源垃圾,VS自带的GC会在程序结束时清理资源垃圾。析构方法是手动清理。...原创 2019-07-30 18:07:55 · 645 阅读 · 0 评论 -
C# 值类型和引用类型
值类型和引用类型的区别值类型存储在内存的栈当中。引用类型存储在内存的堆当中。值类型和引用类型的传递方式不同。值类型和引用类型存储区别的图解:常见的值类型:int,double,bool,char,decimal,struct,enum常见的引用类型:string,自定义类值传递和引用传递...原创 2019-07-30 17:49:04 · 214 阅读 · 1 评论 -
C# 枚举类型 Enum
注意枚举不能存放数字,但可以用数字代码枚举的数据创建枚举public enum Name{ 小明, 小洪, 小刚}public enum Book{ 文学, 历史, 小说}枚举使用Name name1 = Name.小明;Name name2 = Name.小洪;Book book1 = Book.文学;Book book2 = Book.历史;...原创 2019-07-24 13:12:00 · 397 阅读 · 0 评论