
C#学习
文章平均质量分 86
zhaowei303
这个作者很懒,什么都没留下…
展开
-
c# 设计模式:单例模式
C#设计模式(1)——单例模式一、引言最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模式——单例模式(因为这里只牵涉到一个类)二、转载 2014-02-20 17:51:44 · 434 阅读 · 0 评论 -
Linq之SelectMany
学习Linq其实已经很久了,但是一直没有使用的习惯,故水平也始终没有提高。近来刻意强迫自己用Linq来替代C# 2.0的一些写法。这里有一些心得和各位分享一下。 首先看下面两个类的定义: class Student { public int Score { get; set; } public Student(转载 2014-04-30 15:27:25 · 791 阅读 · 0 评论 -
C#特性学习与使用(为枚举定义Description)
转自:http://blog.youkuaiyun.com/nndtdx/article/details/6905802C#特性以前的时候,用过C#中的特性,但只是会用,什么原理,有什么用这些问题不清楚,今天就腾出时间,学习了一下。C#中的特性使用Attribute描述。在使用时,就像是java中的批注一样。不过C#使用中括号。特性用来描述我们的数据。编译器能够识别这些特性转载 2014-03-18 21:51:42 · 1526 阅读 · 0 评论 -
扩展方法举例说明
C#中可以定义扩展方法,还可以为集合做扩展方法。示例如下:扩展方法using System;using System.Collections.Generic; using MySpace; //注意:引入扩展方法的空间namespace Con_1{ class Program { static void Main(转载 2014-03-18 21:41:04 · 695 阅读 · 0 评论 -
c# LINQ查询操作符实例操作总结1
介绍 ·Select - Select选择;延迟 ·Where - Where查询;延迟 ·OrderBy - 按指定表达式对集合正序排序;延迟 ·OrderByDescending - 按指定表达式对集合倒序排序;延迟 ·GroupBy - 分组;延迟 ·Join - Join查询;延迟 ·GroupJoin - 分组Join转载 2014-03-06 14:37:18 · 736 阅读 · 0 评论 -
c# LINQ查询操作符实例操作总结3
介绍 ·First - 返回集合中的第一个元素;不延迟 ·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟 ·Last - 返回集合中的最后一个元素;不延迟 ·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值) ·ElementAt - 返回集合中指定索引的元转载 2014-03-06 14:40:52 · 597 阅读 · 0 评论 -
Linq Concat Union Intersect 区别
Concat :连连接两个序列。 http://msdn.microsoft.com/zh-cn/library/bb351755(v=vs.90).aspxUnion : 通过使用默认的相等比较器生成两个序列的并集。http://msdn.microsoft.com/zh-cn/library/bb341731(v=vs.90).aspxIntersect : 通过使用默认的相等比较转载 2014-05-31 23:37:51 · 739 阅读 · 0 评论 -
LINQ Intersect 自定义规则
如果你还不了解Intersect, 可参考这往篇文章:http://blog.youkuaiyun.com/q107770540/archive/2011/03/18/6258109.aspx 实际项目中,往往需求会复杂的多 比如有这样一个Product类:public class Product { public int ProductId { get; set; }转载 2014-05-31 23:43:20 · 1357 阅读 · 0 评论 -
C#中的Linq技术标准操作符大全(转)
using System;using System.Collections.Generic;using System.Collections ;using System.Linq;using System.Text;namespace LINQ技术{ class LINQ查询操作符 { public static void Main转载 2014-11-23 22:45:49 · 667 阅读 · 0 评论 -
C#pet shop 4.0三层架构分析(转)
微软的pet shop 4.0 去csdn上下载 输入petshop 回车就有源码和文档 如果找不到 我发给你 ===================================== 再给你一篇文章看 本文不是从理论的角度来探讨三层架构,而是用一个示例来介绍如何建设一个三层架构的项目,并说明项目中各个文件所处的层次与作用。写本文的目的,不是为了说明自己的这个转载 2014-11-23 23:17:22 · 525 阅读 · 0 评论 -
反射的用途
反射的用途 反射的用途: (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。 (2)使用Module了解包含模块的程序集以及模块中的类等,还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。 (3)使用ConstructorInfo了解构造函数的名称、参数、访问修饰符(如pulic 或p转载 2014-02-27 09:38:06 · 619 阅读 · 0 评论 -
LINQ解析:LINQ to Objects
可以查询的内容:不是所有的对象都可以使用LINQ to Objects查询,使用LINQ to Objects的首要条件是:需要查询的对象是实现了IEnumerable接口的集合类型;说明:本篇中的例子兼顾使用查询表达式和查询操作符1. 数组包括元素类型为Object在内的所有类型的数组都可以使用LINQ to Objects,示例如下:using System;usi转载 2014-03-19 23:07:21 · 530 阅读 · 0 评论 -
Net序列化-JSON序列化
添加引用System.Runtime.Serializationusing System.Runtime.Serialization.Json;using System.Runtime.Serialization;转载 2014-10-08 10:44:45 · 492 阅读 · 0 评论 -
调用没有通过接口的属性及方法
static void Main() { //DicTest.Test(); Iface face = new cB(){name="A",id=1}; int x = face.getId(); Application.EnableVisualStyles();原创 2014-09-18 16:57:35 · 503 阅读 · 0 评论 -
Linq to DataTable 合并结构相同的 个DataTable 且已重复的行不合并
分类: 【03. LINQ TO Object】2011-03-16 08:12 2943人阅读 评论(2) 收藏 举报linqquerycstring可能标题有点绕口,先看一下需求:有两个结构相同的DataTable 分别为dtA,dtB : dtA: 1 a 2 b 3 c 3 c 3 b 5 a dtB 1 a 1 b转载 2014-05-31 23:40:57 · 691 阅读 · 0 评论 -
c# LINQ查询操作符实例操作总结2
介绍 ·Distinct - 过滤集合中的相同项;延迟 ·Union - 连接不同集合,自动过滤相同项;延迟 ·Concat - 连接不同集合,不会自动过滤相同项;延迟 ·Intersect - 获取不同集合的相同项(交集);延迟 ·Except - 从某集合中删除其与另一个集合中相同的项;延迟 ·Skip - 跳过集合的前n个元素;延迟转载 2014-03-06 14:38:47 · 659 阅读 · 0 评论 -
c# 设计模式:观察者模式
c# 设计模式:观察者模式 观察者模式是我们经常用的一个模式,比如在用wcf做服务的时候通知客户端做一些操作一般用设计者模式。下面我们就来用代码实现一下这个模式报纸接口 public interface INewsPaper { //添加订阅者 void RegisterSubscriber(ISubScribe f_subScribe)转载 2014-02-21 09:19:28 · 426 阅读 · 0 评论 -
# 设计模式:策略模式
今天说一下策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户换句话说策略模式,是指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法,比如吃东西的行为,有的人喜欢狼吞虎咽,有的人喜欢细嚼慢咽,有的人喜欢边吃边说 策略模式的重心不是如何实现算法,而是如何组织、调用这些算法,从而让程序结构更灵活,具有更好的维护性和扩展性。转载 2014-02-21 10:09:07 · 391 阅读 · 0 评论 -
Lambda表达式委托使用
Lambda表达式的本质是“匿名方法”,也即是当编译我们的程序代码时,“编译器”会自动帮我们将“Lambda表达式”转换为“匿名方法”,如下例:string[] names = { "agen", "balen", "coure", "apple" };string[] findNameA = Array.FindAll(names, delegate(string v)转载 2014-01-29 11:09:27 · 653 阅读 · 0 评论 -
结构及其使用 struct (C#)
结构及其使用 struct (C#) 首先结构是值类型。结构是使用 struct 关键字定义的,结构如下:struct 结构名{}结构概述结构具有以下特点:结构是值类型,而类是引用类型。 (结构不能包含显式的无参数构造函数)与类不同,结构的实例化可以不使用 new 运算符。结构可以声明构造函数,但转载 2014-01-08 23:47:42 · 740 阅读 · 0 评论 -
Winform添加App.config文件和调用连接字符串的两种写法
首先要在工程引用中导入System.Configuration.dll文件的引用。 1.App.config文件写法 调用如下:public static string connStr = ConfigurationManager.AppSettings["conn"].ToString();转载 2013-12-24 21:05:14 · 1783 阅读 · 0 评论 -
action<> func<> 这2个委托使用和理解
他们是委托的简写形式。一。【action1.1定义一个委托:比如,我们原来写委托:public delegate void myDelegate(string str); 这个委托表示,它只能委托那些只有一个输入值而没有返回值的方法,比如下面的这个方法。1.2定义方法public static void HellowChinese(string strChinese)转载 2013-12-23 09:52:50 · 453 阅读 · 0 评论 -
鼠标拖动一个文件路径 到TextBox中显示
设置允许拖放,并处理拖入和拖放事件textBox.AllowDrop = true;textBox.DragEnter += new DragEventHandler(textBox_DragEnter);textBox.DragDrop += new DragEventHandler(textBox_DragDrop);获取文件路径void textBox_DragDro转载 2014-01-03 15:00:10 · 730 阅读 · 0 评论 -
C#中Page事件执行顺序
C#中Page执行顺序:OnPreInit()、OnInit()……using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.Web转载 2014-02-23 22:23:15 · 2592 阅读 · 0 评论 -
异步编程模式1-了解同步与异步
同步执行程序执行的流程是按照语句顺序执行,一句执行完再执行下一句,如果遇到函数调用,要等到函数调用返回以后才会执行下一句——这就是“程序的同步执行模式”。例 1:using System.Threading; using System; public class SynchroPattern { public delegate int NewTa转载 2014-02-24 09:30:19 · 487 阅读 · 0 评论 -
C# 中 yield return 和 yield break 关键字的用法
yield关键字向编译器指示它所在的方法是迭代器块。 编译器生成一个类来实现迭代器块中表示的行为。在迭代器块中,yield 关键字与return 关键字结合使用,向枚举器对象提供值。这是一个返回值,例如,在 foreach 语句的每一次循环中返回的值。yield关键字也可与 break 结合使用,表示迭代结束。有关迭代器的更多信息,请参见迭代器(C# 编程指南)。下转载 2014-03-06 13:43:41 · 3147 阅读 · 0 评论 -
面向接口编程的一个例子
举个例子说说接口编程的思想魅力所在,假如我们模拟世界上所有的事物,生成一个个的类.现在的是经济社会,大家都可喜欢谈钱的事了.那我们就想知道下每类事物的价钱,价值.咋整?首先想到的自然是让每个类都提供一个函数,然后计算出自己的价钱.但函数名字咋取?随便乱取可就乱套了,于是来个接口IValuable.接口里面有函数声明double GetValue();于是所有类继承这个接口,然后用GetValu转载 2014-03-04 10:25:56 · 975 阅读 · 0 评论 -
c# XML序列化与反序列化
序列化对象 public class People { [XmlAttribute("NAME")] public string Name { set; get; } [XmlAttribute("AGE")] public int Age { set; get;转载 2014-02-26 23:44:15 · 499 阅读 · 0 评论 -
线程传参数方法
给线程传送数据如果需要给线程传送一些数据,可以采用两种方式。一种方式是使用带ParameterizedThreadStart委托参数的Thread构造函数,另一种方式是创建一个定制类,把线程的方法定义为实例方法,这样就可以初始化实例的数据,之后启动线程。 要给线程传送数据,需要某个存储数据的类或结构。这里定义了包含字符串的结构Data,也可以传送任意对象。public struct转载 2014-02-15 10:48:35 · 514 阅读 · 0 评论 -
C#中Dictionary、ArrayList、Hashtable和Array的区别
C#中Dictionary、ArrayList、Hashtable和Array的区别C# 泛型集合之非泛型集合类与泛型集合类的对应:ArrayList对应ListHashTable对应DictionaryQueue对应QueueStack对应StackSortedList对应SortedList C# 集合类 Array Arraylist List Hashtab转载 2014-02-25 23:53:57 · 901 阅读 · 0 评论 -
C#Tuple的用法
一.返回两个参数的常用方法private void button1_Click(object sender, EventArgs e) { string validateresult = string.Empty; var person = new Person { Name="张三",Age=200};转载 2014-01-06 23:11:51 · 5401 阅读 · 0 评论 -
c#中使用多线程访问winform中控件的问题
我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。 首先来看传统方法: public partial class Form1 : Form { public Form1() { InitializeCo转载 2014-02-24 14:32:04 · 972 阅读 · 1 评论 -
异步编程模式2-BeginInvoke和EndInvoke方法
为什么要进行异步回调?众所周知,普通方法运行,是单线程的,如果中途有大型操作(如:读取大文件,大批量操作数据库,网络传输等),都会导致方法阻塞,表现在界面上就是,程序卡或者死掉,界面元素不动了,不响应了。异步方法很好的解决了这些问题,异步执行某个方法,程序立即开辟一个新线程去运行你的方法,主线程包括界面就不会死掉了。异步调用并不是要减少线程的开销, 它的主要目的是让调用方法的主线程不需要同步等待在转载 2014-02-24 09:46:46 · 1070 阅读 · 2 评论 -
Timer处理多线程并发,避免死锁
C# Timer用法有哪些呢?我们在使用C# Timer时都会有自己的一些总结,那么这里向你介绍3种方法,希望对你了解和学习C# Timer使用的方法有所帮助。关于C# Timer类 在C#里关于定时器类就有3个C# Timer使用的方法1.定义在System.Windows.Forms里C# Timer使用的方法2.定义在System.Threading.Timer类里转载 2014-01-02 00:10:51 · 2055 阅读 · 0 评论