随笔分类 - C#
摘要:在客户的服务器上,发现响应头上Content-Length为0,在其他的环境不能重现这个问题。 通过Fidder抓包发现:Transfer-Encoding: chunked,使用了分包传输,Content-Length为0了。 问题:是什么原因导致了Transfer-Encoding: chunk
阅读全文
摘要:在运维工作中,经常能接到客户的反馈这个:引发类型为“System.OutOfMemoryException”的异常。客户反馈物理内存都还有富余,怎么报内存不足的错误呢! 什么时候会引发System.OutOfMemoryException:操作系统无法满足GC对连续内存块的请求,则会发生System
阅读全文
摘要:错误信息: 集合已修改;可能无法执行枚举操作。 调用堆栈: 在 System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource) 在 System.Collections.Generic.Dictionary`
阅读全文
摘要:第一步:生成秘钥文件 强名称工具 (Sn.exe) 有助于使用强名称对程序集进行签名。Sn.exe 提供了用于密钥管理、签名生成和签名验证的选项。 1、使用Visual Studio 命令 Visual Studio 开发人员命令提示会自动设置环境变量,这些变量使你能够轻松使用 .NET Frame
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.IO.Compression;namespace byteCompress{ class Program { static void Main(string[] args) { Console.WriteLine("请输入文件的路径:"); string path = Console.Read...
阅读全文
摘要:.module 模块.assembly 程序集,.assembly伪指令指定了这个模块属于哪个程序集。模块只能包括一个单独的.assembly伪指令.entrypoint 进入点 在C#中,这个函数是Main,一个程序只能有一个开始点.ctor 构造函数.cctor 静态构造函数newobj 创建一个新的对象,对应c#中的new,当new被首次调用时,会为代码和变量分配内存。但是之后,在new上的每一次调用,只会为变量分配新的内存instance 实例函数,区别于静态函数.maxstack: 这个伪指令指定了在一个方法被调用时,能够出现在计算栈上的元素的最大数量。ret 函数结束指令call
阅读全文
摘要:故事简介:在一个漆黑的夜晚,小偷潜入一间民宅,机警的小狗发现小偷,于是发出汪汪的示警声。小偷听到小狗的示警声,被吓跑了,主人听到了小狗的示警声,被惊醒了。 /// <summary> /// 小狗 /// </summary> class Dog { public event EventHandler BarkEvent;// 狗叫事件 public void Bark() { Console.WriteLine("小狗:汪汪,小偷来了"); OnBark(new EventArgs(...
阅读全文
摘要:与c++一样,c#可以定义析构函数。但c#的析构函数主要用于释放非托管资源。在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机。为了完全掌控非托管资源的释放,Net提供一个IDisposable接口。一、c#的析构函数1.1 定义析构函数 class Program { static void Main(string[] args) { } ~Program()//析构函数 { } }1.2 编译器把析构函数解析成Finalize终结器方法Finalize的具体实现.me...
阅读全文
摘要:类或对象可以通过事件向其他类或对象通知发生的相关事情。 引发事件的类称为“发行者”,接收事件的类称为“订阅者”。 下面实现新增一个会员时,通知AddPatientHandler类处理新增会员事件。.Net Framework的事件编码规范 委托类型的名称都应该以EventHandler结束。 委托的原型定义:有一个void返回值,并接受两个输入参数:一个Object 类型,一个 EventArgs类型(或继承自EventArgs)。 事件的命名为 委托去掉 EventHandler之后剩余的部分。 继承自EventArgs的类型应该以EventArgs结尾。第一步:发布符合 .NET Fram
阅读全文
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;using Microsoft.Practices.Unity;using System.Reflection;using System.Reflection.Emit;namespace UnityDemo{ class Program { static void Main(string[] args) { //实例化DynamicMethod D...
阅读全文
摘要:委托是一种定义方法签名的类型。 当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。 您可以通过委托实例调用方法。 在表面上,委托很简单,使用new来构造委托实例。使用委托实例的变量名来调用回调函数。实际情况是编译器,CLR在幕后做了大量的工作来隐藏其复杂性,只有了解了这些幕后的东西,你才能真正的掌握它、灵活的运用它。 1、声明委托namespace DelegateDemo{ internal delegate void HelloCallBack(string name); class Program { static void Main(str...
阅读全文

浙公网安备 33010602011771号