C#
tiz198183
这个作者很懒,什么都没留下…
展开
-
C#中的多态
通过继承实现的不同对象调用相同的方法,表现出不同的行为,称之为多态1、virtual-override一样地实现多态public class Animal { public virtual void Eat() {原创 2011-07-26 09:43:34 · 693 阅读 · 0 评论 -
构建多线程应用程序(Thread、lock锁定范围、Monitor、Interlocked、[Synchronization]、TimerCallback、ThreadPool线程池)
private void Form1_FormClosed(object sender, FormClosedEventArgs e) { System.Environment.Exit(0);//终止进程,强制退出线程 }一、System.Threading.Thread类 using System;usi...原创 2014-01-04 11:43:58 · 1765 阅读 · 0 评论 -
System.Threading.Mutex:一台电脑上面只有一个进程实例在运行,利用Mutex互斥量可以实现了这个功能
http://blog.csdn.net/xwdpepsi/article/details/6614248原创 2015-12-11 11:17:07 · 7832 阅读 · 0 评论 -
c# 验证码 识别
http://blog.csdn.net/stevenkylelee/article/category/2429945原创 2015-01-07 10:37:05 · 591 阅读 · 0 评论 -
自定义隐式转换 public static implicit operator 和显式转换
例子:对用户user中,用户名first name和last name进行转换成合成一个限定长度为10个字符新name。自定义隐式转换:namespace transduction{ public partial class transductionForm : Form { public transductionForm() {转载 2016-11-29 14:22:51 · 3956 阅读 · 0 评论 -
c# 数据加密
按 加密类型 分为:对称加密 和 非对称加密一、对称加密:双方共用密钥 1、摘要算法 MD5(已经破解),SHA1(推荐) 2、对称加密 DES(已经破解),AES(推荐)二、非对称加密 如:RSA算法 双方都有各自的一套公钥,私钥。转载 2015-11-02 19:45:36 · 741 阅读 · 0 评论 -
第19章 文件及I/O
一、 文件操作基础1 File类和FileInfo类介绍 2 Directory类和DirectoryInfo类介绍二、文件基本操作1 判断文件是否存在2 创建文件3 复制文件4 移动文件 5 删除文件 6 获取文件基本信息 三、 文件夹基本操作 1 判断文件夹是否存在 2 创建文件夹 3 移动文件夹 4 删除文件夹 5 遍历文件夹 四、 I/O(输入/输出) 1 流概述 2 文件I/O流介绍 3 使用I/O流操作文本文件 4 使用I/O流操作二进制文件 五、 实战原创 2011-05-20 21:25:00 · 870 阅读 · 0 评论 -
对象序列化 BinaryFormatter、XmlSerializer、SoapFormatter
序列化是将对象状态转换为可保持或传输的格式的过程。与序列化相对的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。反之,反序列化根据流重新构造对象。此外还可以将对象序列化后保存到本地,再次运行的时候可以从本地文件中“恢复”对象到序列化之前的状态。在.net中有提供了几转载 2013-02-28 16:46:10 · 1192 阅读 · 0 评论 -
异步方法的意义何在,Async和await以及Task的爱恨情仇,还有多线程那一家子。
http://www.cnblogs.com/xianyudotnet/p/5716908.html转载 2016-11-21 11:35:59 · 601 阅读 · 0 评论 -
构建多线程应用程序2 Parallel 并行类:Parallel.ForEach()、Task异步操作类:Task.Factory.StartNew()、并行LINQ查询: AsParallel()
public partial class Form3 : Form { /// <summary> /// 主线程 /// </summary> private Task taskMain; /// <summary> /// 主线程退出对象 ...原创 2014-01-05 15:44:37 · 3550 阅读 · 0 评论 -
c# event事件编译后变成了什么?
源码: public delegate void wt(); public void f1() { MessageBox.Show("a"); } public event wt sj; public Form1() {原创 2015-05-27 14:59:42 · 638 阅读 · 0 评论 -
WPF ObservableCollection中的动态集合
问题:将List集合改成ObservableCollection,当集合发生改变时,列表也立即会刷新 [DataContract] public class ProductsModel : BaseModel { public ProductsModel(); [DataMember]原创 2017-07-13 10:43:32 · 2189 阅读 · 0 评论 -
构建可克隆的对象(icloneable 浅复制)
浅复制using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Reflection;using System.Threading;using System.Runtime.Remoting.Contexts;namespace ConsoleAp原创 2015-08-03 11:23:16 · 587 阅读 · 0 评论 -
C#实例复制和深度复制的实现
深度复制与浅表复制的区别在于,浅表复制只复制值类型的值,而对于实例所包含的对象依然指向原有实例。 浅复制:MemberwiseClone() 深复制:反射、序列化、树实例:浅复制MemberwiseClone()、深复制序列化 class Program { [Serializable] public原创 2017-07-20 16:38:02 · 874 阅读 · 0 评论 -
.net中查看那些函数吃CPU,使用vs自带的性能诊断工具
Q:为什么我的Visual Studio中没有代码分析功能([分析]菜单中[仅对...运行代码分析])。A:你的vs版本是下面其中之一吗? Microsoft Visual Studio 2005 Team Edition for Software Developers Visual Studio Team System Development Edition 或原创 2017-09-27 17:21:45 · 1981 阅读 · 0 评论 -
Unity依赖注入(构造器注入、属性注入、方法注入)
框架 .NET Framework 4.5dll文件:Microsoft.Practices.Unity.dllMicrosoft.Practices.Unity.Configuration.dll代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;us...原创 2018-05-10 22:28:18 · 3385 阅读 · 0 评论 -
19、构建多线程应用程序:委托异步调用方法(BeginInvoke,EndInvoke,AsyncCallback)
BeginInvoke 委托异步调用方法EndInvoke 获取被调用方法的返回值AsyncCallback 完成时由次线程主动通知调用线程效果:代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Re原创 2014-01-03 22:16:16 · 1140 阅读 · 0 评论 -
c# 静态变量与非静态变量区别
c# 静态变量与非静态变量区别静态变量:静态变量使用 static 修饰符进行声明在所属类被装载时创建生存周期为应用程序的存在周期通过类进行访问所属类的所有实例的同一静态变量都是同一个值(全局变量,被所有类的实例对象共享,即一个实例的改变了静态变量的值,其他同类的实例读到的就是变化后的值)静态成员不能访问非静态成员非静态变量:不带有 static 修饰符原创 2015-05-23 16:08:31 · 1678 阅读 · 0 评论 -
破解DLL文件
步骤1 检测壳 壳的概念: 所谓“壳”就是专门压缩的工具。 这里的压缩并不是我们平时使用的RAR、ZIP这些工具的压缩,壳的压缩指的是针对exe、com、和dll等程序文件进行压缩,在程序中加入一段如同保护层的代码,使原程序文件代码失去本来面目,从而保护程原创 2011-08-11 10:12:09 · 2248 阅读 · 0 评论 -
C#中怎样数字转换成颜色值?
ColorTranslator.ToHtml(Color.FromArgb(32768))将 32768 转换成 #008000原创 2012-02-06 14:55:19 · 2159 阅读 · 0 评论 -
定义一个全局变量设初值为20,在page_load里面给其赋值为50,在别的按钮事件里面引用还是为20,怎么回事?
定义一个变量设初值为20,在page_load里面给其赋值为50,在别的按钮事件里面引用还是为20,怎么回事?public partial class Default2 : System.Web.UI.Page{ string str = "20"; protected void Page_Load(object sender, EventArgs e) {原创 2012-02-21 11:33:39 · 2523 阅读 · 0 评论 -
c#中从string数组转换到int数组
string[] input = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };int[] output = Array.ConvertAll(input, delegate(string s) { return int.Parse(s); });注:使用Array类中的静态泛形式方法ConvertAll进行转换delegate(s原创 2013-01-12 16:28:01 · 666 阅读 · 0 评论 -
C#位运算
C#位运算在C#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位。C#支持的位逻辑运算符如表2.9所示。运算符号意义运算对象类型运算结果类型对象数实例~位逻辑非运算整型,字符型原创 2013-01-14 09:55:07 · 720 阅读 · 0 评论 -
Lamda表达式之 GroupBy 分组 、OrderByDescending排序
表结构如下:Lamda表达式: List model = NewsService.GetNewsAllList(null, whereCriteria, null);//获得数据 if (model != null)//数据不为空时,分组并排序 { var ls =原创 2013-01-19 11:26:45 · 6917 阅读 · 0 评论 -
public class Assemble<T> where T:new() T的限制为必须要有一个无参构造器
这句话的意思是声明了一个叫做Assemble的泛型类,然后T的限制为必须要有一个无参构造器。public class Assemble where T:new(){public string SayHello (T object){T ass=new T();return ass.ToString();}}public class legal{ public legal(原创 2012-08-23 09:59:11 · 962 阅读 · 0 评论 -
.net中的泛型
泛型把类或方法的类型的确定推迟到实例化该类或方法的时候 ,也就是说刚开始声明是不指定类型,等到要使用(实例化)时再指定类型泛型可以用于 类、方法、委托、事件等下面先写一个简单的泛型public class GenericClass{ void SomeMethod( T t ) { //d转载 2012-06-19 16:52:17 · 802 阅读 · 0 评论 -
delegate、Lambda表达式、Func委托和Expression(TDelegate)表达式目录树
delegateMSDN:一种安全地封装方法的类型,它与 C 和 C++ 中的函数指针类似。与 C 中的函数指针不同,委托是面向对象的、类型安全的和保险的。委托的类型由委托的名称定义 class Program { const int num = 100; delegate bool delCompare(int a); //定义委托数据类转载 2012-10-31 09:46:27 · 2147 阅读 · 0 评论 -
用C#编写ActiveX控件
推荐文章:http://blog.csdn.net/qcdn/article/details/2153327原创 2014-01-23 15:35:14 · 1130 阅读 · 0 评论 -
C# 反射通过GetCustomAttributes方法,获得自定义特性
使用反射访问自定义属性的信息和对其进行操作的方法。一、代码: namespace ConsoleApplication1{ class Program { static void Main(string[] args) { PrintAuthorInfo(typeof(FirstClass));原创 2013-12-28 15:52:29 · 25951 阅读 · 0 评论 -
SQL/LINQ/Lambda 转换
SQL LINQLambdaFROMSELECT * FROM Employeesfrom e in Employeesselect e Employees .Select (e => e) SELECT e.LoginID, e.JobTitleFROM Employees A转载 2013-01-18 12:11:29 · 1854 阅读 · 0 评论 -
反射 System.Reflection
//TypeOf():得到一个Class的Type。 //GetType():得到一个Class的实例的Type (小明.GetType())//Type.GetType(""): 需在同一个程序集中,跨程序集的反射返回null个人肤浅理解,反射实际上就是得到程序集中的属性和方法(元数据). 1、System.Object.GetType() 对象获得元数据 2、System.Ty...原创 2012-02-09 12:53:53 · 1079 阅读 · 0 评论 -
C# 模拟登陆、识别验证码
namespace WindowsFormsApplication1{ partial class Form1 { /// /// 必需的设计器变量。 /// private System.ComponentModel.IContainer components = null; ///原创 2015-01-07 10:21:16 · 2013 阅读 · 0 评论 -
多线程中的lock,Monitor.Wait和Monitor.Pulse
http://bbs.csdn.net/topics/380095508private static object lockObject=new object();static void A(){ lock(lockObject) { Monitor.Pulse(LockObject); //允许第一个正在 “等待队列”转载 2015-04-29 11:07:49 · 798 阅读 · 0 评论 -
WinForm(C#)自定义控件之——RoundButton(圆形按钮)
https://www.cnblogs.com/oen8080/p/5210832.html C# 继承DataGridView仿Excel表格程序 https://blog.csdn.net/ljfblog/article/details/17048047转载 2018-11-20 15:34:30 · 2773 阅读 · 0 评论