C#
feihu_guest
这个作者很懒,什么都没留下…
展开
-
【10】LSP:LisKov替换原则
《敏捷软件开发 原则、模与实践(c#版)》第10章 LSP:LisKov替换原则 OCP背后的主要机制是抽象和多态。在静态类型语言中,比如C#,支持抽象和多态的关键机制之一是继承。正是使用了继承,我们才可以创建实现其基类中抽象方法的派生类。 是什么设计规则在支配着这种特殊的继承用法呢?最佳的继承层次的特征又是什么呢? 怎样的情况会使我们创建的类层次结构掉进不符合转载 2012-02-25 15:54:45 · 1410 阅读 · 0 评论 -
【常用代码】调试日志
写日志 public static class DebugHelper { private const string LOG_PATH = @"e:\"; private const string LOG_NAME = "stanLog.txt"; public static void WriteLog(this string i原创 2013-04-12 19:01:21 · 866 阅读 · 0 评论 -
改善C#:C#中标准Dispose模式的实现
需要明确一下C#程序(或者说.NET)中的资源。简单的说来,C#中的每一个类型都代表一种资源,而资源又分为两类:托管资源:由CLR管理分配和释放的资源,即由CLR里new出来的对象;非托管资源:不受CLR管理的对象,windows内核对象,如文件、数据库连接、套接字、COM对象等;毫无例外地,如果我们的类型使用到了非托管资源,或者需要显式释放的托管资源,那么,就需要让类型继转载 2013-04-23 09:20:00 · 659 阅读 · 0 评论 -
改善C#:在C#中选择正确的集合进行编码
要选择正确的集合,我们首先要了解一些数据结构的知识。所谓数据结构,就是相互之间存在一种或多种特定关系的数据元素的集合。结合下图,我们看一下对集合的分类。集合分类在上图中,可以看到,集合总体上分为线性集合和非线性集合。线性集合指元素具有唯一的前驱和后驱的数据结构类型。非线性集合是指具有多个前驱或后驱的数据结构类型,如:树、图。在FCL中,非线性集合实现的比较少,所以我们将转载 2013-04-23 09:15:27 · 687 阅读 · 0 评论 -
C# Math常用的方法
1、向上进位取整。Math.Ceiling 例如: Math.Ceiling(32.6)=33; Math.Ceiling(32.0)=32;2、向下舍位取整。Math.Floor 例如: Math.Floor(32.6)=32;3、取指定位数的小数。Math.Round 例如:Math.Round(36.236,2)=36.24;原创 2013-04-25 15:41:11 · 834 阅读 · 0 评论 -
无法嵌入互操作类型“MSScriptControl.ScriptControlClass”
解决方案资源管理器窗口 -> 右击引用 -> 选择COM中的Mircosoft Script Control -> 确定。这样会将程序集MSScriptControl添加在引用中 解决方案资源管理器--〉项目目录--〉引用--〉MSScriptControl--〉属性--〉嵌入互操作类型--〉改为false示例片段 ScriptControlClass js转载 2013-12-21 12:00:53 · 9785 阅读 · 1 评论 -
那些程序中常用的变量名
字串位置:leading 前面,trailing 后面,符号:specifier 区分符,sign 符号,签名,white 空白格数字:parenthesis (parentheses)圆括号,decimal point 小数点,exponent 指数,currency symbol 货币符号, hex 十六进制其他:universal time原创 2014-03-27 19:35:12 · 1908 阅读 · 0 评论 -
【笔记】C#基元类型与对应的FCL类型
C#中的基元类型FCL类型是否与CLS兼容描述sbyteSystem.SByteN有符号8位值byteSystem.ByteY无符号8位值shortSystem.Int原创 2014-03-31 00:15:36 · 1593 阅读 · 0 评论 -
ASP.NET - Exception from HRESULT: 0x80070057 (E_INVALIDARG)
描述:一次断点后,总是提示ruti原创 2014-06-08 00:42:45 · 1722 阅读 · 0 评论 -
Deep clone object by serialization
public static object DeepClone(object original) { using (MemoryStream ms = new MemoryStream()) { BinaryFormatter formatter = new BinaryFormatter(); fo原创 2014-06-21 23:21:36 · 995 阅读 · 0 评论 -
收集一些.NET开发资源站点和部分优秀.NET开源项目
Net General微软.Net中文主页.NET Framework开发中心微软.Net Framework中文产品支持中心微软.Net Framework中文新闻组(Web)微软VB.Net中文新闻组(Web)博客园 .NET 2.0 专题孟宪会之精彩世界微软.NET俱乐部MSDN中文网络广播AspxBoy教程网天极网微软开发专栏中国IT实验室DOTNET频道阿良.Net主页中国IT实转载 2013-01-16 09:55:20 · 1439 阅读 · 0 评论 -
操作Excel文件,读取,创建
读取Excel文件 private IList GetRegionsFromExcel(HttpPostedFile excelFile) { IList regionList = new List(); string filePath = Server.MapPath(FileHelper.SaveAsAccessories(excelFile, _uploadFile原创 2012-07-04 17:26:47 · 913 阅读 · 0 评论 -
NUnit配置问题
vs2010 和 NUnit 问题处理。1. 在 下 加... 2. 在 加 ... ... 其中loadFromRemoteSources 的配置选项为: 另外,更加你的.net framework版本选择是哪个版本:v4.0.20转载 2012-06-11 12:22:19 · 867 阅读 · 0 评论 -
【8】SRP:单一职责原则
《敏捷软件开发 原则、模式与实践(c#版)》第8章 SRP:单一职责原则 定义:“SRP:一个类应该只有一个发生变化的原因。”(P89)“在SRP中,我们把职责定义为变化的原因。如果你能够想到多于一个的动机去改变一个类,那么这个类就具有多于一个的职责。” (P90)部分摘要 “如果一个类承担的职责过多,就等于把这些职责耦合在了一起。一个职责的变化可能会削转载 2012-02-25 11:38:16 · 669 阅读 · 0 评论 -
【9】OCP:开放--封闭原则
《敏捷软件开发 原则、模式与实践(c#版)》第9章 OCP:开放--封闭原则 定义: "软件实体(类、模块、函数等)应该是可以扩展的,但是不可以修改。"(P93)OCP概述 遵循开放--封闭原则设计出的模块具有两个主要的特征。它们是 (1)对于扩展是开放的(open for extension)。这意味着模块的行为是可以扩展的。当应转载 2012-02-25 11:41:12 · 877 阅读 · 0 评论 -
使用.NET中的XML注释 -- XML注释标签讲解
将注释生成XML文件常见注释标签列表标签名称说明语法参数 标记应当用于描述类型或类型成员。使用 添加针对某个类型说明的补充信息。 标记的文本是唯一有关 IntelliSense 中的类型的信息源,它也显示在 对象浏览器 中。su原创 2012-03-09 22:23:44 · 2085 阅读 · 0 评论 -
装箱与拆箱的性能问题
程序源码: public class Program { static void Main(string[] args) { Int32 v = 5; object o = v; v = 123; Console.WriteLine(v + ", " + (Int32)o); Console.ReadKey(); } }编码后的中间语言:原创 2012-03-27 18:23:33 · 1267 阅读 · 0 评论 -
Dblinq Linq To Mysql 问题
今天调试Linq to Mysql遇到问题,查遍谷歌,找不到相关资料,很是郁闷:记录于此,日后再次折腾!无法获取查询集合的 数量:总是抛出MemberInit异常!发现,与Linq to Sql 不同,实例化对象后,竟然不能使用Count()var result = from ai in sc.ClCaRTicLEItem // join au in原创 2012-03-13 22:11:08 · 1348 阅读 · 0 评论 -
文件编码问题
/// 2 /// 获得文件编码 3 /// 4 /// 文件流的字节数组 5 /// 字符编码 6 public static Encoding GetFileEncoding(byte[] content) 7 { 8 if (content.Length > 0) 9转载 2012-06-04 17:12:13 · 501 阅读 · 0 评论 -
一个页面标题和过滤输出的解决方案
首先要提到一个东西:Response.Filterfilter可以让你截取到最后的html输出,如果你的程序需要在输出之前,做一些处理,用这个比较方便。在哪里,如何使用Response.Filter这里使用上全局的Global.asax处理,在Global.asax的Application_BeginRequest事件里截取html事件代码protected voi转载 2012-06-04 22:45:14 · 581 阅读 · 0 评论 -
视频转成flv格式
这里讲一下重要的:1.用到两个工具,一个是ffmpeg.exe,另一个是mencoder.exeffmpeg最新版本的下载地址:http://ffdshow.faireal.net/mirror/ffmpeg/Mencoder新版本的下载地址:http://www5.mplayerhq.hu/MPlayer/releases/win32/这里有一个重点,网上的文章都没讲到,所以转载 2012-06-04 22:21:14 · 625 阅读 · 0 评论 -
将dll部署到全局程序集缓存(GAC)中
针对一些类库项目或用户控件项目(一般来说,这类项目最后编译生成的是一个或多个dll文件),在程序开发完成后,有时需要将开发的程序集(dll文件)安装部署到GAC(全局程序集缓存)中,以便其他的程序也可以调用。 一般来说,将程序集(dll)安装到GAC中有以下几种方法:1. 管理工具->Microsoft.NET Framework 2.0 配置->管理->我的电脑->程序集缓存->转载 2012-06-05 11:50:52 · 13004 阅读 · 1 评论