
WinForm
天赋进行时
狗狗狗
展开
-
分线程加载新界面-适用于显示等待动画
在主线程中添加以下代码,多线程显示新窗口Thread th = new System.Threading.Thread((System.Threading.ThreadStart)delegate { Application.Run(new FrmWait()); });th.Start();这里的FrmW原创 2016-01-06 09:03:34 · 328 阅读 · 0 评论 -
值类型和引用类型
简单工厂模式,传递多个参数,传回来一个子类对象值类型 直接继承于valueType 引用数据是存储在栈上 普通的参数传递引用类型 直接继承于object 引用地址存在栈上,值是存储在堆上 传递的是变量的地址值类型:bool,结构,枚举,int,double等 引用类型:自定义类,string,数组,接口原创 2015-10-24 21:24:41 · 244 阅读 · 0 评论 -
面向对象基础3:多态.虚方法
虚方法: 1.父类如果有方法让子类重写,将这个方法标记为virtual 2.虚方法在父类中必须由实现,哪怕是空实现 3.虚方法子类可以重写,也可以不重写,父类本身是有方法体的原创 2015-10-24 21:09:12 · 329 阅读 · 0 评论 -
面向对象基础2:多态.抽象类
抽象 抽象方法必须存在抽象类中,既抽象类和抽象方法需关键字abstract1.继承抽象类的子类,必须将父类中抽象方法全部重写,除非该子类也是抽象类,因为抽象成员不能有任何实现 2.抽象方法不能有任何实现(方法体) 3.抽象方法必须半酣在抽象类中 4.抽象类不能被实例化 5.抽象类中可以包含抽象成员,也可以包含有具体代码的成员 6.抽象方法不能用static修饰抽象实例public abs原创 2015-10-24 21:06:32 · 293 阅读 · 0 评论 -
面向对象基础1:多态.接口
面向对象:一种分析问题的方式,增强了程序的可扩展性面向对象的3大特性 封装:字段封装成属性,类封装成类库 继承:类于类之间的关系 多态:接口,抽象类,虚方法. 多态的作用:把不同的子类对象都当做父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,已适应需求的不断变化接口(干净利落,优先级最高) 1.接口命名规范:已I开头 2.接口中是不能有任何实现的 3.无访问修饰符,默认为pu原创 2015-10-24 20:58:25 · 353 阅读 · 0 评论 -
10.24杂项
C#代码编写到最终执行流程 1.编写c#代码,保存为cs文件 2.通过csc.exe程序对.cs文件编译为.net程序集 此时的exe或者dll文件并不是机器码(cpu不能理解),缺少框架 3.程序运行时通过JIT即时编译编译.将程序编译为机器码命名规则: 骆驼命名法:首字母小写,后面首字母大写,为字段变量命名时使用 帕斯卡命名:全部首字母大写.作为类,方法,属性名命名使用多使用注释原创 2015-10-24 20:37:30 · 362 阅读 · 0 评论 -
委托(窗体传值,多播委托)
利用委托进行窗体传值 本质上是对窗口的构造函数中传入委托 像在窗口的构造函数中传入委托, 则先对新窗口进行设置 在新窗体中申明委托对象 申明委托字段, 构造函数中申明委托对象的委托字段 用该委托字段接受窗体构造函数时传入的委托 在新窗口中对委托进行赋值 搞定关键性代码//窗体1private void button1_Click(object sender, EventArgs原创 2015-10-22 11:23:05 · 345 阅读 · 0 评论 -
委托
委托的意义:将一个方法作为参数传给另一个方法 委托的概念;声明一个委托,委托所指向的函数必须跟委托具有相同的签名(签名为返回值及形参). 匿名函数:没有名字的函数.方法体直接写在表达式中(可见于lamda表达式),多用于方法使用次数不多的方法. 普通委托语法: 1.申明一个委托对象 2.创建一个与委托对应的方法 3.在需要使用委托的方法形参中加上委托,并在方法体内添加委托 4.调用方法原创 2015-10-21 23:49:18 · 294 阅读 · 0 评论 -
XML基础
XML:可扩展的标记语言(标签名称不固定) 相对于HTML(显示数据)来说,这是一个存储数据,相对一个轻型的数据库注意: 1.xml语言对大小写敏感 2.xml语言也是成对出现命名空间System.XML XML文档类XmlDocumentNode:节点 Element:元素,xml中所有的信息都是元素 节点包含元素创建步奏: 1:添加命名空间system.xml 2:创建xml文档原创 2015-10-21 16:41:06 · 287 阅读 · 0 评论 -
字符串及ref,out
字符串特性:不可变性,暂存池 string str=null; str.Length:长度 string.IsNullOrEmpty(str): 判断是否为空或者null str.ToCharArray():将字符串转换为数组 str.ToUpper():大写 str.ToLower():小写 str.Equals():比较字符串值是否相等 *object.ReferenceEqua原创 2015-10-24 21:34:42 · 376 阅读 · 0 评论 -
GC垃圾回收器
垃圾回收器 GC 内存未满时不确定什么时候回收 string s=null; 系统会自动回收 GC.Collect() 立即回收垃圾 零代:刚声明的变量 一代:存活时间超过一段时间的零代升级上来的 二代:在一代中存活超过一段时间的一段升级上来的 静态变量会一直挂着,不会被回收 弱引用:标记对象,可能之后会被引用,但是可能原创 2015-10-24 21:35:41 · 283 阅读 · 0 评论 -
集合(泛型及泛型)基本
集合相对数组来说,个数可以不固定 集合添加元素大部分是使用add方法 T-Type如何简单区分泛型及非泛型 如果有<>则是泛型,如果没有则不是非泛型集合 1.ArrayList 命名空间:CollEctions 语法:ArrayList 对象名=new ArrayList() 特点:可以放任何类型,数值存入时将其隐式转换为object类型,取出时需要转换类型.2.HashTable原创 2015-10-25 16:33:56 · 329 阅读 · 0 评论 -
事件传值及ComboBox遍历控件
事件传值步骤 1.定义一个事件对象.public event EventHandler evt;EventHandler 英译:事件处理器 官方注解:表示将处理不包含事件数据的事件的方法.2.为了方便传对象,需要建一个类继承于EventArgs EventArgs,英译:事件参数(Event Arguments)–Arguments:参数 官方注解:System.EventArgs是包含事原创 2015-11-23 22:39:36 · 627 阅读 · 0 评论 -
对象序列化(二进制序列化)
对象序列化(二进制序列化)对象序列化是将对象(比如类对象)转换为二进制数据(字节流). 反序列化是将二进制数据还原为对象,和序列化没有关系. 关键字:BinaryFormatter作用序列化/反序列化是为了保持对象的持久性.方便我们的存储和信息的交换.注意的事项1.要序列化的对象必须比较为[Serializable]. 2.如果有父类,该类型的父类也必须标记为[Serializable].原创 2015-11-22 20:44:41 · 3030 阅读 · 0 评论 -
PropertyGrid控件基础
该控件的官方注解: 提供用于浏览对象属性的用户界面.1.属性SqlConnectionStringBuilder scsb=new SqlConnectionStringBuilder(); ppg.SelectedObject = scsb;在上述代码中,ppg为该控件缩写. ppg.SelectedObject=object o; 官方注解:获取或设置在网格中显示属性的对象. 运行如上原创 2015-11-22 16:28:31 · 386 阅读 · 0 评论 -
委托及反射
委托是一种类型.像类一样,可以声明委托类型变量. 构造函数是可以有多个的 匿名方法:通常只能用一次的方法 通常使用委托来实现 委托的可以执行事件的事情,但是不安全 委托可以直接调用 事件只能+=-=调用 事件语法:event ProcessWordDelegate 加上event关键字实现事件机制的好处 用了event时间,不可以修改事件已经注册的值,不可以冒充事件进行事件通知原创 2015-11-16 11:14:19 · 1871 阅读 · 0 评论 -
XML进阶增删改查及gdv的小知识
先介绍DategridView控件 表格控件,缩写:dgv,学习到的是几个实用属性的使用方法及所达到的效果. 1.contextMenuStrip:可以绑定该控件,很多控件都是会有的 2.SelectionMode:单击选择的样式,例如,单击选中一个单元格,选中一行等,他也是有Tag属性 这里回忆一下,数据库中的Id列是给程序员使用的,当使用该时,可以隐藏掉该列.当增删改查时,可以选择ID当原创 2015-11-12 10:47:15 · 632 阅读 · 0 评论 -
节点树控件及资源管理器(递归)
首先介绍节点树, 节点树:TreeView 重用的方法: tv(treeview控件实例,下同).Nodes.Add(string nodes) 注意,其实这里是是有返回值的 他将返回添加后的节点,这也是资源管理器的关键 在根节点下添加子节点 Nodes 官方注解:获取分配给树视图控件的树节点集合 Add 官方注解:将具有指定标签文本的新树节点添加到当前树节点集合的末尾tv.Se原创 2015-11-11 16:44:07 · 423 阅读 · 0 评论 -
正则表达式
首先理解一下正则表达式的概念: 正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。 许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Per原创 2015-11-11 15:38:32 · 291 阅读 · 0 评论 -
File类Path类Directory类常用方法-附绝对及相对地址
File类 命名空间:Using System.IO File英文翻译:文件,档案 是一个静态类 常用方法:File.Create(string fileName); 直接输入FileName则直接在debug文件下生成. 请注意:如果没有文件夹的话是会提示找不到路径的.及不会自动创建文件夹文件路径分为绝对路径和相对路径。完整描述文件位置的路径就是绝对路径,相对于目标的位置就是相对路径。原创 2015-11-11 14:58:05 · 2082 阅读 · 0 评论 -
拆装箱及文件流
装箱:值类型转换为引用类型 拆箱:引用类型转换为值类型拆箱装箱发生的前提: 1.必须有继承关系 2.一种是值类型,一种是引用类型,来有可能发生拆装箱拆装箱的结果: 损耗性能拆装箱的意义: 尽量避免拆装箱如何检验是否是拆装箱: 反编译工具中,选择IL 代码中出现BOx即为装箱 UnBOx即为拆箱文件流 关键字:FileStream 命名空间:System.IO使用时搭配using使原创 2015-11-01 22:50:02 · 420 阅读 · 0 评论 -
单例模式
单例模式适用于只创建一个实例步奏:1:首先私有化构造结构,不然后面的无意义2:创建一个公共方法,返回唯一实例(不创建的话则程序无其他途径创建),相当于通过方法方法实例,取消构造函数3:创建全局唯一的单例字段public partial class Form2 : Form { public static Form2 _frmGet = null; priv原创 2015-10-21 15:26:14 · 240 阅读 · 0 评论