C#
文章平均质量分 65
90后程序媛
这个作者很懒,什么都没留下…
展开
-
自学,C#委托和事件
委托:委托是一个类型,是一个函数指针类型,这个类型将该委托的实例化对象所能指向的函数的细节封装起来了,既规定了所能指向的函数的签名,也就是限制了所能指向的函数的参数和返回值。当实例化委托的时候,委托对象会指向某一个匹配的函数,实质就是将函数的地址赋值给了该委托的对象,然后就可以通过该委托对象来调用所指向的函数了。 多播委托:委托也可以包含多个方法,这时候要向委托对象中添加多个方法原创 2015-08-31 14:23:24 · 383 阅读 · 0 评论 -
MVC学习
MVC学习笔记,详情见文档原创 2015-09-08 08:58:42 · 312 阅读 · 0 评论 -
接口学习,实现多态的三种方法何时使用
接口是一种规范。只要一个类继承了一个接口,这个类就必须实现这个接口中所有的成员 为了多态。接口不能被实例化。也就是说,接口不能new(不能创建对象) 接口中的成员不能加“访问修饰符”,接口中的成员访问修饰符为public,不能修改。 (默认为public)接口中的成员不能有任何实现(“光说不做”,只是定义了一组未实现的成员)。原创 2015-09-08 09:49:33 · 1284 阅读 · 0 评论 -
你必须知道的.net学习笔记
.net 中类型转换的基本规则如下:1,任何类型都可以安全的转换为其基本类型,可以由隐士转换来完成。2,任何类型转换为其派生类型时,必须进行显示转换,转换规则是:(类型名)对象名。3,使用GetType可以取得任何对象的精确类型。4,基本类型可以使用Convert类实现类型的转换。5,除了String类型以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型。原创 2015-09-08 09:07:04 · 646 阅读 · 0 评论 -
如何修改类名、文件夹名的前缀
很多朋友应该都遇到过这样问题,想要使用某个项目的框架,但是想修改该项目的前缀作为本项目名前缀,由于我使用的项目框架内,需要修改的地方很多,如果一次ctrl+F Ctrl+H进行修改整个解决方案,总会卡住,然后失败。所以我选择一步一步来下面我教大家一下修改步骤: 1,先一个项目一个项目的进行替换前缀名,重新生成一下,确保每个项目是没有问题的。 2,将项目移除,然后修改项目对应解原创 2015-09-18 10:43:38 · 1847 阅读 · 0 评论 -
javascript 异步调用 后台.cs里的方法 PageMethods如何使用
ASP.NET AJAX异步通信层能够将声明在ASP.NET页面中公有的类方法(C#中的static,VB.NET中的Shared)当作Web Service中声明的方法一样对待,为其生成类似的客户端调用代理。 我们还是通过一个实例程序来了解这个功能。该示例程序的功能与界面与前一节中的完全一致,唯一的不同就是,客户端异步调用的不再是某个Web Service,而是定义在ASP.NET原创 2015-09-22 11:17:39 · 570 阅读 · 0 评论 -
XML创建、读取、追加的例子
XML:可扩展的标记语言例子1: 创建带属性的xml XmlDocument doc = new XmlDocument(); XmlDeclaration dec= doc.CreateXmlDeclaration("1.0","utf-8","yes"); doc.AppendChild(dec);原创 2015-09-21 16:56:26 · 519 阅读 · 0 评论 -
匿名函数、泛型委托、Lamda表达式
//匿名函数 当某个函数只会执行一次时 可以写为匿名函数 ProStr(names, delegate(stringname) { return "\"" + name + "\""; }); public delegateint DelCompare(object o1原创 2015-09-23 15:19:25 · 763 阅读 · 1 评论 -
委托、窗体传值、多播委托
窗体传值例子说明:1, 在窗体1中定义方法ShowMsg,带一个string类型的参数。通过点击button1按钮,将该方法传给窗体22, 窗体2中声明一个委托DelTest,与ShowMsg方法有相同的签名。同时声明Form2的构造函数Form2(DelTest del);接收从窗体1传过来的方法。3, 点击窗体2中的button按钮,将textbox的值作为参数传给ShowM原创 2015-09-23 15:20:31 · 424 阅读 · 1 评论 -
单例模式
1, 将构造函数私有化2, 提供一个方法,返回一个对象3, 创建一个单例;例子如下:public partialclass Form1 :Form { publicForm1() { InitializeComponent(); } private v原创 2015-09-21 16:57:33 · 288 阅读 · 0 评论 -
C#中调用OCX控件
调用OCX控件的步骤:1、在系统中注册该ocx控件,命令:regsvr32.exe 控件位置(加 /u 参数是取消注册)2、在.net的工具箱中添加该控件,拖到form中去就可以了。不用工具箱的话,自己手工添加,需要注意一个问题,就是要用Aximp.exe来包装一下ocx控件的类,然后再程序中引用生成的dll就可以了。aximp [options]{file.dll | file.原创 2015-09-23 15:54:32 · 17622 阅读 · 0 评论 -
如何追中异常,减少debug时间
今天在debug的时候,又出现了空指针,我这次真的火了!每次遇到空指针,.net给出的信息总是非常的少,我根本不知道是哪里Throw出来的,只能反复检查代码。 思路大概是:获取exception的调用堆栈。获取exception相关的这个方法的方法的IL代码结合excpetion的IL偏移量和方法的IL,把调用源找出来。代码 class Program { s转载 2015-11-24 15:32:18 · 436 阅读 · 0 评论 -
c#开发中注意事项
开发中需要注意的问题很多,很多小细节问题我会经常总结,如下:1,第一次或将项目复制到其他文件夹打开时,主要打开后首先要做的是,重新生成解决方案,防止各类库之间的引用消失,导致出现问题。原创 2015-11-02 10:54:37 · 353 阅读 · 0 评论 -
CLR via C#
IntelliSense 智能感知:解析元数据垃圾收集的数据类型(托管数据:由编译器生成的。)CLR是和程序集一起工作的。通过CLR,应用程序的I/O部分可用C#编写,工程计算部分则换用APL编写。CLR在这些语言之间提供了其他技术无法媲美的集成度。JITCompiler函数负责将一个方法的IL代码编译成本地CPU指令。 JIT just in time '及时'原创 2015-09-08 08:51:51 · 385 阅读 · 0 评论 -
File类读写
注意:File一般用来读取小文件,如果要读取大文件一般用文件流。 //File //Create Delete Copy Move //byte[] buffer = File.ReadAllBytes(@"C:\Users\SpringRain\Desktop\抽象类特点.txt"); ////原创 2015-09-07 17:50:59 · 1400 阅读 · 0 评论 -
C#多线程的同步与通信
C#中使用lock和Monitor控制多线程对资源的使用,最常见的生产者和消费者问题就是多线程同步和通信的经典例子。这篇文章通过例子来了解C#多线程的同步与通信。一、关于lock和Monitorlock可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其它线程必须等待。格式定义如下:lock(expres原创 2015-09-01 14:54:25 · 443 阅读 · 0 评论 -
密封类,部分类
6原创 2015-09-07 17:54:08 · 335 阅读 · 0 评论 -
访问修饰符,序列化
1、c#中的访问修饰符public :公开的公共的private:私有的,只能在当前类的内部访问protected:受保护的,只能在当前类的内部以及该类的子类中访问。internal:只能在当前项目中访问。在同一个项目中,internal和public的权限是一样。protected internal:protected+internal在同一个项目中internal的访问原创 2015-09-07 17:53:27 · 371 阅读 · 0 评论 -
FileStream,StreamReader,StreamWriter
将创建文件流对象的过程写在using当中,会自动的帮助我们释放流所占用的资源。FileStream:用来操作字节的(意思可以操作任何类型的文件,可以操作大文件)StreamReader:StreamWriter:操作字符的(文本文件,对内存压力会小一些)FileStream1. 创建FileStream对象对文件做什么操作,对文件数据做什么操作原创 2015-09-07 17:49:56 · 348 阅读 · 0 评论 -
FrameWork与程序
原创 2015-09-08 14:24:21 · 267 阅读 · 0 评论 -
ADO,ADO.NET
设计 ADO.NET 的目的是为了满足这一新编程模型的以下需要:断开式数据结构、与 XML 的紧密集成、能够组合来自多个、不同数据源的数据的通用数据表示形式以及为与数据库交互而优化的功能,它们都是 .NET 框架固有的内容。 ADO 和 ADO.NET 之间的差异 最本质的区别是:ADO.NET是托管代码库。 ADO以RecordSet存储,而ADO.net则以DataSe原创 2015-09-08 08:50:35 · 259 阅读 · 0 评论 -
继承
我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类。Student、Teacher、Driver 子类 派生类Person 父类 基类子类继承了父类的属性和方法,但是子类并没有继承父类的私有字段。问题:子类有没有继承父类的构造函数?答:子类并没有继承父类的构原创 2015-09-06 17:36:08 · 347 阅读 · 0 评论 -
面向对象学习
先有面向过程 ,后来演化出来了面向对象。面向过程:面向的是完成这件事的过程,强调的是完成这件事的动作。例如:将大象塞进冰箱里。(打开冰箱门,塞进去,关门)三个动作。 孙全 瘦小 矮 小屌丝孙全踩着小板凳打开冰箱门孙全找翟盼盼帮忙把大象塞进冰箱里,孙全踩着板凳去亲。孙全踩着板凳关闭冰箱门 翟盼盼 190cm 非常大力气1、翟自己就能打开冰箱门2、翟原创 2015-09-06 17:32:52 · 239 阅读 · 0 评论 -
字符串深入学习
• namespace(命名空间),用于解决类重名问题,可以看做“类的文件夹”。 字符串的处理(S)• string可以看做是char的只读数组。char c = s[1];。例子:遍历输出string中的每个元素。• C#中字符串有一个重要的特性:不可变性,字符串一旦声明就不再可以改变。所以只能通过索引来读取指定位置的char,不能对指定位置的char进行原创 2015-09-06 17:35:15 · 314 阅读 · 0 评论 -
集合
ArrayList每次集合中实际包含的元素个数(count)超过了可以包含的元素的个数(capcity)的时候,集合就会向内存中申请多开辟一倍的空间,来保证集合的长度一直够用。 class Program { static voidMain(string[] args) { //创建了一个集合对象原创 2015-09-06 17:37:02 · 329 阅读 · 0 评论 -
List泛型集合
确定泛型集合的类型,则里面元素类型随之确定。泛型集合比数据好处在于:长度可以改变。命名空间:system.Collections.Generic创建泛型集合对象List list=new List();list.Add(1); list.Add(2); list.Add(3); list.Ad原创 2015-09-07 17:51:34 · 643 阅读 · 0 评论 -
多态之虚方法
概念:让一个对象可以表现出多种状态(类型)多态:增加了程序的可扩展性,减少了很多代码量。实现多态的3种手段:1、虚方法 2、抽象类 3、接口 static voidMain(string[] args) { Chinese cn1=new Chinese("韩梅梅");原创 2015-09-07 17:52:49 · 800 阅读 · 0 评论 -
委托与事件的学习
委托:委托是一个类型,是一个函数指针类型,这个类型将该委托的实例化对象所能指向的函数的细节封装起来了,既规定了所能指向的函数的签名,也就是限制了所能指向的函数的参数和返回值。当实例化委托的时候,委托对象会指向某一个匹配的函数,实质就是将函数的地址赋值给了该委托的对象,然后就可以通过该委托对象来调用所指向的函数了。多播委托:委托也可以包含多个方法,这时候要向委托对象中添加多个方法,这种委托称为多播委托原创 2015-12-01 17:02:59 · 474 阅读 · 0 评论