文章分类 - C#
摘要:术语:APM 异步编程模型,Asynchronous Programming ModelEAP 基于事件的异步编程模式,Event-based Asynchronous PatternTAP 基于任务的异步编程模式,Task-based Asynchronous PatternTPL 任务并行库,Task Parallel Library 现在我给这个系列整个目录和做个简单介绍。“概要 + 目录”整理 C#语言是微软于2000年发布,基于.NET Framewrok框架的、面向对象的高级语言。经过近十三年的发展,经历了5次大的升级,目前最新版本为C#5.0(对应于.NET Framework
阅读全文
摘要:平时的开发如果我们能有些得心应手的开发工具,就好比是如虎添翼。会大大的提高我们的开发效率。Visual Studio 自不必说,通过此文,和大家回忆下除此之外的经典的开发工具,同时希望能把这些经典的工具介绍给新手,相信对平日的开发会有很大的帮助。Internet Explorer Developer Toolbar简介:微软发布了Internet Explorer Developer Toolbar最新版.该产品让开发人员能够深入探索和理解Web页面,帮助开发者更好地创建Web应用.安装后可以在IE中快速分析网页的软件.该工具条可集成在IE窗口,或以浮动窗口形式存在.IE Developer
阅读全文
摘要:前些日子,看到园子里面有人用老王喝茶的例子讲解了一下同步和异步,虽然没有代码实现,但是能够通俗易懂的讲解了同步、异步、阻塞、非阻塞的关系了,今天借题发挥,用一个热水器加热洗澡的例子来具体演示一下C#使用委托进行异步编程。首先引用MSDN中的一段话来描述一下如何使用异步方式.NET Framework 允许您异步调用任何方法。 为此,应定义与您要调用的方法具有相同签名的委托;公共语言运行时会自动使用适当的签名为该委托定义 BeginInvoke 和 EndInvoke 方法。BeginInvoke 方法启动异步调用。 该方法与您需要异步执行的方法具有相同的参数,还有另外两个可选参数。 第一个参数
阅读全文
摘要:C# 从1.x 发展到目前的 4.5,委托的写法真是越来越简单精悍。如果您对这些委托的写法不是很清晰,本文可以帮助到您。委托是一种安全封装方法的类型,可以将方法作为方法的参数。委派方法的参数个数、顺序、类型及方法返回值类型必须跟定义的委托方法一样,但参数名称可以不同。1、C# 定义一个完整委托:delegate string SayMessage(string msg);static string SayHello(string Name){ return string.Format("Hello {0}", Name);}static void Main(string[]
阅读全文
摘要:本文目录如下:1、概述1、1 系统性能定义1、2 目的意义2、性能优化技术2、1 前端优化2、2 后端优化3、总结1、概述 最近看了很多关于系统性能调优的文章,发现很多文章都是介绍某一方面的,例如专门数据库方面的优化、前端页面的优化等等都不是很全面,这里结合我在工作中的一些实践对系统性能调优技术来一个综合性的分享。1、1 系统性能定义如上图,性能就是吞吐量加延迟,这两个相互矛盾又相互协调构成了一个系统性能的定义:Throughput,吞吐量。也就是每秒钟可以处理的请求数,任务数。Latency,系统延迟。也就是系统在处理一个请求或一个任务时的延迟。一般来说,一个系统的性能受到这两个条件的约..
阅读全文
摘要:在说LINQ之前必须先说说几个重要的C#语言特性一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在foreach一个集合的时候, 也要为遍历的集合的元素,指定变量的类型 隐式类型的出现, 程序员就不用再做这个工作了。 (2)使用方法 来看下面的代码: var a = 1; //int a = 1; var b = "123";//string b = "123"; ...
阅读全文
摘要:调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调试工具的发展让很多调试任务变的越来越简单和省时。 这篇文章总结了可能节省你大量时间的 11 个 Visual studio 的调试技巧和方法。 1 悬停鼠标查看表达式值 调试是很有挑战性的。比如在函数内逐步运行可以看出哪里出错,查看堆栈信息可以知道函数被谁调用等等……但是无论哪种情况下,查看表达式和局部变量的值都是很麻烦的(把表达式和局部变量放到 watch 窗口里)。一种更简单的方法,把鼠标停在所需查看的数据上。如果是类或结构,那么点击展开可以很方便快...
阅读全文
摘要:.NET中的类型分为值类型和引用类型,他们在内存布局,分配,相等性,赋值,存储以及一些其他的特性上有很多不同,这些不同将会直接影响到我们应用程序的效率。本文视图对.NET 基础类型中的值类型和引用类型在内存中的布局,方法的调用,值类型如何实现接口,以及其他一些细节问题进行一些简要的讨论,文章主要参考《Pro .NET Performance》 和 《Advanced .NET Debugging》 ,希望给大家一点儿帮助。一 简单例子 举一个简单的例子,我们有一个名为Point2D的对象,用来表示二维空间中的坐标,每一个坐标值x,y都用一个short类型表示,整个对象占4个字节。现在假设我们需
阅读全文
摘要:有好多.net程序有加密狗或者有验证,如果exe或dll没有做过特殊处理,破解.net程序其实很简单,不过你要有足够的耐心!我只做个简单的小例子,把公司的软件破解了,不要被老大知道,吼吼~~~~1使用工具Reflector.exe 用来查看.net代码 这个就不用多说了它是学.net必备神器Ildasm.exe:用来将dll,exe编译为IL文件ilasm.exe:用来将IL文件编译回来dll或exeEmEditor文本处理工具这个大家如果没有我这有下载里面有注册码EmEditor.rar2Ildasm和ilasm基本知识:ilasm.exe与ildasm.exe的使用首先打开cmd命令。cd
阅读全文
摘要:本专题概要:动态类型介绍为什么需要动态类型动态类型的使用动态类型背后的故事动态类型的约束实现动态行为总结引言: 终于迎来了我们C# 4中特性了,C# 4主要有两方面的改善——Com 互操作性的改进和动态类型的引入,然而COM互操作性这里就不详细介绍的,对于.Net 互操作性我将会在另外一个专题中详细和大家分享下我所了解到的知识,本专题就和大家分享C# 4中的动态类型,对于动态类型,我刚听到这个名词的时候会有这些疑问的——动态类型到底是什么的呢? 知道动态类型大概是个什么的时候,肯定又会有这样的疑问——C# 4中为什么要引入动态类型的?(肯定引入之后可以完成我们之前不能做的事情了,肯定是有好处.
阅读全文
摘要:关于“事件”的定义,请去问Google吧,本文不引用官方的术语。废话不多说,先定义一下场景:微波炉,大家生活中都有用过,当你关上微波炉的门时便自动加热。“关门”和“加热”便是两个动作。注意,当关上门的时候便开始加热,这里“当关上门”便是一个“事件”的触发条件。触发了什么?“加热”这个动作。我相信你完全能理解我上面所说的内容吧?那么接下来我便一步一步来实现我的题目“C#事件Event”第一步:定义我们的对象对象一:微波炉/// <summary> /// 微波炉 /// </summary> class Microwave { }对象二:加热器(微波炉内置)/// ...
阅读全文
摘要:会用“正则表达式”还不够,真正理解“正则表达式”才能游刃有余。本套视频的目的是,让你理解它,从而可以写出超级强大的表达式!byKev++深入理解《正则表达式》01介绍深入理解《正则表达式》02基础深入理解《正则表达式》03字符类深入理解《正则表达式》04数量修饰符深入理解《正则表达式》05边界符深入理解《正则表达式》06分组深入理解《正则表达式》07断言深入理解《正则表达式》08实战 数字深入理解《正则表达式》09条件语句深入理解《正则表达式》10贪婪与懒惰深入理解《正则表达式》11实战 python深入理解《正则表达式》12再见
阅读全文
摘要:前言:这篇博客我主要在上一篇的基础上面再说一下一下C#中其他的一些文件流,也是从最基础上面去说,这篇主要介绍几个操作文件流的类,读写类StreamReader,StreamWriter和File类以及Directory类的操作FileStream类的控制(1) Flush(); 清除此流的缓冲区,是为了保护硬盘?staticvoidMain(string[] args){using(FileStream filewrite = newFileStream("file.txt", FileMode.Create, FileAccess.Write)){filewrite.Wr
阅读全文
摘要:前言:这篇博客我主要说一下C#中文件流的使用规则,也是从最基础上面去说,也相信我们大家只要是干Web行业的这些知识点肯定能用上,其中介绍几个操作文件流的类,Path类,FileStream类,Read和Write方法的使用Path(1) 文件路径有什么特征? 1)[根目录:\]文件夹\文件名.后缀名(2)合并路径 Combine string p4 = Path.Combine(@"c:\123a\abc\", "白天不懂夜的黑.mp3"); string p5 = Path.Combine(@"c:\123a\abc", "
阅读全文
摘要:问题: 一张表中,有一些字段频繁被使用,而有几个大字段是几乎没被使用过。为了性能考虑,你想避免每次查询的时候都加载这些“消耗昂贵”的字段。这样就需要把一张表分割成两个及以上的实体。解决过程: 假设你有这样一张表,如图2-7-1所示。这张表持有照片的信息,同时包括bit级的缩略图和全分辨率的图像。 图2-7-1 创建频繁使用字段的实体和包含很少使用的字段实体的步骤如下:在工程项目上右键,选择添加“新项”,选择ADO.NET实体数据模型。选择“从数据库中生成”,点击“下一步”。使用向导选择一个已有数据库连接,或者新建一个。在弹出的“选择数据库对象”框中,选择Photograph表,保持...
阅读全文
摘要:委托和事件在 .NET Framework 中的应用非常广泛,较好的理解委托和事件对很多人来说可能并不容易。它们像一道坎儿,过了这个坎儿的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里模糊,浑身不自在。下面就通过简洁的语言和通俗的例子来讲一下什么是委托、如何实现委托,如何实现委托,以及事件的使用与处理。View Code 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 PepoleClass pc=new PepoleClass(); 6 pc.SpeakO...
阅读全文
摘要:命名空间,当两个类不在同一个命名空间下的时候,需要我们导入命名空间。导入的快捷键时Shift+alt+F10。这个快捷键用途非常的广泛,包括在实现接口,继承抽象类的时候都是有使用的。(ctrl+.)也行,但是有的时候不管用。图一、类库与窗体应用程序和winform的区别问题是现在想在program类中调用类库中的Class1.cs该怎么办呢?在8.23复习内容下面点击引用-鼠标右键-添加引用,在弹出的对话框中,选中要导入的项目,点击确定。之后就能导入命名空间了。图二、导入命名空间 在我们之前的博客:C#中其它一些问题的小节我们也介绍过导入命名空间,那里面讲的是序列化的时候命名空间的导入。C#中
阅读全文
摘要:面向对象介绍,类和对象 首先作为基础知识的回顾,我们可以看下我之前写过的文章:C#中超级好用的类,思想的转变。看完这两篇文章以后,我们看下如下的相关概念:构造函数特点: 1.方法名称与类名称完全一样。 2.构造函数没有任何返回值,哪怕是void 3.构造函数的方法修饰符一般为public当手动为类添加构造函数后,会覆盖默认的那个无参数的构造函数。快捷写构造函数的方法:ctor两下tab键。构造函数可以被重载。(只要参数列表不同即可。)this表示当前对象。"类"也是一种数据类型,是一种自定义数据类型,可以通过类声明该类类型的变量。Teacher teacher = new
阅读全文
摘要:在非英文版的Visual Studio中安装Resharper以后会出现如下提示:---------------------------ReSharper---------------------------Somekeyboardshortcuts could not be assigned because thecurrentkeyboardschemeisreadonly.Change thekeyboardschemeand try again.---------------------------确定---------------------------打开Visual Studio
阅读全文
摘要:如果你没有正则表达式的基础,请跟着教程“一步步来”。请不要大概地扫两眼就说看不懂——以这种态度我写成什么样你也看不懂。当我告诉你这是“30分钟入门教程”时,请不要试图在30秒内入门。事实是,我身边有个才接触电脑,对操作都不是很熟练的人通过自己学习这篇教程,最后都能在文章采集系统中使用正则表达式完成任务。而且,他写的表达式中,还使用了“零宽断言”等“高级”技术。所以,如果你能具体地说明你的问题,我很愿意帮助你。但是如果你概括地说看不懂,那不是我的问题。欢迎转载,但请声明作者以及来源。正则表达式30分钟入门教程版本:v2.31 (2009-4-11) 作者:deerchao转载请注明来源目录跳过目
阅读全文

浙公网安备 33010602011771号