C#
文章平均质量分 77
chclvzxx
风一样的表情,水一般的柔情,火一样的激情,土一样的性情,木一样的痴情。
展开
-
C#计算税率
出处:http://www.cnblogs.com/nuaalfm/s团队中对面向对象的理论研究已经做了很长时间,大家对接口,封装,继承,多态以及设计模式什么的似乎都能说出点东西来,但当看代码时发现大家其实并不十分清楚具体怎么做,所以我就想了个题目让大家来做,然后进行了一次头脑风暴,过程记录如下:题目内容:需要处理三种产品图书,数码,消费,需要计算产品的税率,图书的税率为价格的0.1,数码和消费类产品为价格的0.11,需要获得三种产品的信息,图书和消费类产品的信息为:"名字:" + Name;,数码产品的信转载 2011-03-04 16:32:00 · 1764 阅读 · 0 评论 -
ServiceStack.Redis 使用教程
环境准备Redis (使用Windows版本做测试,运营环境建议使用Linux版本)ServiceStack.Redis-v3.00在Windows上运行Redis服务器作开发和测试是很好的,但是在运营环境还是Linux版本靠谱,下面我们就先解压Redis到一个目录下:运行redis-server.exe 看到如下Windows控制台:上面我们可以看转载 2012-07-19 21:31:18 · 1422 阅读 · 0 评论 -
自建简单的依赖注入容器Ioc Container
最近研究了Ioc,DI 以及一些开源的框架,以下根据自己的理解写一个简单的Ioc容器。我们在使用一个依赖注入容器时一般都是实现三步:创建一个Ioc容器;依赖关系注入,这里需要一种collection对象存储这种注入关系;根据依赖注入获取对象的实例;好了,接下来我们可以按照测试驱动开发的模式完成一个简易版本的注入容器:MinContainer测试代转载 2012-09-03 09:44:46 · 682 阅读 · 0 评论 -
C# 内存模型
1..Net的类型和内存分配2.GC垃圾收集器的工作原理3.什么是非托管资源4.如何有效释放对象资源。总结.现在开始我们本节的学习。 1..Net的类型和内存分配 Net中的所有类型都是(直接或间接)从System.Object类型派生的。 CTS中的类型被分成两大类——引用类型(reference type,又叫托管类型[managed type]),转载 2012-09-02 21:42:18 · 2513 阅读 · 0 评论 -
控制反转IOC与依赖注入DI
一、名词解释IoC:Inverse of control,控制反转;DI:Depedency Injection 依赖注入IoC和DI是从不同角度描述同一件事情,即DI模式是Ioc的具体实现方式,通过引入IoC容器,利用依赖关系注入,实现对象的解耦。二、问题引入先来看普通的方式:[csharp] view plaincopyprint转载 2012-09-03 09:44:25 · 468 阅读 · 0 评论 -
对象的内存模型基础知识
操作系统和运行库通常将用于容纳数据的内存划分为两个独立的区域,每个区域都采取截然不同的方式来进行管理,这两个区域通常称为堆栈和堆。调用一个方法时,它的参数以及它的局部变量需要的内存从堆栈中获取,方法结束后(要么返回,要么抛出异常),为参数和局部变量分配的内存将自动归还给堆栈并可在另一个方法调用时重新使用。使用new关键字和一次构造函数来创建一个对象(类的实例)时,构建对象所需的内存转载 2012-09-02 21:47:54 · 451 阅读 · 0 评论 -
NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)
全文还是分四部分:1.基本概念 2.深拷贝与浅拷贝实现机制 3.代码实现和分析 4.总结。下面我们来进入正式的学习。 1.基本概念: 首先我们应该了解一下什么叫深拷贝与浅拷贝(Deep Copy and Shallow Copy)。 a.浅拷贝(Shallow Copy影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用。转载 2012-09-02 21:46:39 · 1284 阅读 · 0 评论 -
WCF宿主与服务托管
若要公开WCF服务,需要提供一个运行服务的宿主环境。就像.NET CLR需要创建宿主环境以托管代码一般,WCF的宿主环境同样运行在进程的应用程序域中。在应用程序域中可以创建一个或多个ServiceHost实例,其关系如图一所示: 图一 托管ServiceHostWCF并不推荐在应用程序域中创建多个ServiceHost实例。如果要托管多个服务,完全可以在一个宿主中通过多个Endp转载 2012-09-07 11:25:19 · 515 阅读 · 0 评论 -
WCF传输大数据的设置
在从客户端向WCF服务端传送较大数据(>65535B)的时候,发现程序直接从Reference的BeginInvoke跳到EndInvoke,没有进入服务端的Service实际逻辑中,怀疑是由于数据过大超出限定导致的。问题是我实际发送的数据是刚刚从WCF服务端接收过来的,一来一去,数据量差别并不大。然后发现,在客户端和服务端实际使用的是不同的配置,对于客户端,在添加ServiceRefer原创 2012-09-07 10:23:21 · 459 阅读 · 0 评论 -
c# 使用sharppcap实现 网络抓包
sharppcap的dll下载地址:http://sourceforge.net/directory/os:windows/?q=sharppcap详细用法:http://www.codeproject.com/KB/IP/sharppcap.aspx为了进一步说明使用方式,在此分享一个我写的wrapper类。using System;u转载 2012-10-25 10:48:14 · 3609 阅读 · 0 评论 -
C# 网络抓包
以前一直都是知道用winpcap的,现在网上搜了一下,有用C#封装好了的,很好用下面是其中的几个用法这个类库作者的主页:http://www.tamirgal.com/home/default.aspxPcapOpen()有下面几个方法PcapOpen()PcapOpen(bool promiscuous_mode)PcapOpen(bool promiscuous_mod转载 2012-10-25 10:47:37 · 6717 阅读 · 0 评论 -
LDAP(轻量目录访问协议)基于C#的System.DirectoryServices进行开发
先上一个学习资源http://msdn.microsoft.com/zh-cn/library/ms180835(v=VS.90).aspx DirectoryEntry 对象http://msdn.microsoft.com/zh-cn/library/ms180839(v=VS.90).aspxDirectoryEntry 对象属性http://msdn.mic原创 2012-11-13 09:40:44 · 978 阅读 · 0 评论 -
c#图像处理入门的一个好方法-bitmap类和图像像素值获取方法
一.Bitmap类Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下:1. GetPixel方法和 SetPixel方法:获取和设置一个图像的指定像素的颜色.2. PixelFormat属性:返回图像的像素格式.3. Palet原创 2012-02-23 17:32:24 · 1408 阅读 · 0 评论 -
C#各种结束进程的方法详细介绍
Process类的CloseMainWindow, Kill, CloseProcess.CloseMainWindow是GUI程序的最友好结束方式,从名字上就可以看出来它是通过结束主窗体,相当于用户点击窗体的关闭按钮或者按Alt + F4。它的本质就是向主窗体发送WM_CLOSE消息(Process.MainWindowsHandle可以返回主窗体的句柄)。这个可以在.NET Framewo转载 2011-11-11 16:26:49 · 2978 阅读 · 0 评论 -
概念问题自解释
<br />面向对象:职责单一, 开关封闭,依赖倒置,里氏替换,接口隔离,开发和重用等价,共同封闭,共同重用,无循环依赖。稳定依赖,稳定抽象。<br />接口:定义数据类型的抽象,是一种契约,包含方法,属性,事件,索引器。<br />继承:建立对象层次关系的机制。可以在一个子类中使用基类中授权的数据和方法。<br />封装:就是利用抽象的数据类型将数据的操作封装在一起,数据被保护在抽象类型的内部,外面访问根据授权的进行操作。<br />多态:同名方法完成不同功能的情况。override(覆写n层基类的虚和抽原创 2011-03-09 15:29:00 · 528 阅读 · 0 评论 -
C#事件(event)解析
<br />事件(event),这个词儿对于初学者来说,往往总是显得有些神秘,不易弄懂。而这些东西却往往又是编程中常用且非常重要的东西。大家都知道windows消息处理机制的重要,其实C#事件就是基于windows消息处理机制的,只是封装的更好,让开发者无须知道底层的消息处理机制,就可以开发出强大的基于事件的应用程序来。<br />先来看看事件编程有哪些好处。<br />在以往我们编写这类程序中,往往采用等待机制,为了等待某件事情的发生,需要不断地检测某些判断变量,而引入事件编程后,大大简化了这种过程:<b转载 2011-03-09 15:56:00 · 482 阅读 · 0 评论 -
asp.net开源CMS总汇
<br />最近汇总了一些asp.net开源cms,希望对学习ASP.NET的人员带来帮助:<br /><br />国内CMS:<br /><br />1.SiteServer CMS<br /><br />SiteServer CMS 网站内容管理系统(著作权登记号2008SR15710)是定位于中高端市场的CMS内容管理系统,能够以最低的成<br /><br />本、最少的人力投入在最短的时间内架设一个功能齐全、性能优异、规模庞大的网站平台。<br /><br /> SiteServer CMS 是原创 2011-05-30 16:32:00 · 1046 阅读 · 0 评论 -
归纳一下:C#线程同步的几种方法
<br />我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理,然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。<br /> 在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就简单的做一下归纳。<br />一、volatile关键字<br /> volatile是最简单转载 2011-04-11 23:08:00 · 398 阅读 · 0 评论 -
c# 线程同步: 详解lock,monitor,同步事件和等待句柄以及mutex
<br />最近由于在准备Collection对象培训的PPT,因为涉及到SyncRoot的属性的讲解,所以对怎样在多线程应用程序中同步资源访问做了个总结:<br />对于引用类型和非线程安全的资源的同步处理,有四种相关处理:lock关键字,监视器(Monitor),同步事件和等待句柄,mutex类。<br />Lock关键字<br /> 本人愚钝,在以前编程中遇到lock的问题总是使用lock(this)一锁了之,出问题后翻看MSDN突然发现下面几行字:通常,应避免锁定 public 类型,否则实例转载 2011-04-11 23:07:00 · 428 阅读 · 0 评论 -
C#多线程系列
<br />什么是进程?<br />当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。<br />而一个进程又是由多个线程所组成的。<br /><br />什么是线程?<br />线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。<br /><br />什么是多线程?<br />多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创转载 2011-05-31 23:19:00 · 463 阅读 · 0 评论 -
C# WebRequest WebClient Post请求 无乱码
<br />Web.Config<br /><globalization responseEncoding="gb2312"/><br />CS文件<br />using System;<br />using System.Collections.Generic;<br />using System.Linq;<br />using System.Web;<br />using System.Web.UI;<br />using System.Web.UI.WebControls;<br />using S转载 2011-04-18 22:02:00 · 1595 阅读 · 0 评论 -
编程资料 -C# 多线程
<br />编程资料 - 多线程<br />C#多线程编程实例实战<br />作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996<br />单个写入程序/多个阅读程序在.Net 类库中其实已经提供了实现,即<br />System.Threading.ReaderWriterLock 类。本文通过对常见的单个写入/多个阅读程序的分析来探索c#<br />的多线程编程。<br />问题的提出<br />所谓单个写入程序/多个阅读程序的线程同步问转载 2011-04-19 22:54:00 · 5421 阅读 · 0 评论 -
编程资料 -C# 多线程
<br />编程资料 - 多线程<br />C#多线程编程实例实战<br />作者: 刘弹 www.ASPCool.com 时间:2003-5-17 上午 10:24:05 阅读次数:10996<br />单个写入程序/多个阅读程序在.Net 类库中其实已经提供了实现,即<br />System.Threading.ReaderWriterLock 类。本文通过对常见的单个写入/多个阅读程序的分析来探索c#<br />的多线程编程。<br />问题的提出<br />所谓单个写入程序/多个阅读程序的线程同步问转载 2011-04-19 22:57:00 · 7623 阅读 · 0 评论 -
判断DataSet和DataTable是否为空
if(ds != null && ds.Table.Count>=0 && ds.Table[0].Rows.Count>0) { ds.Table[0].Row[0]["name"]; } 判断DataSet是否为空//*****************判断DataSet是否为空DataSet ds=new DataSet();if(ds != null原创 2011-06-15 10:22:00 · 4819 阅读 · 0 评论 -
通过调用Word模板(Doc、dot)直接打印
通过替换模板中的指定 书签 来进行内容的替换、整合,然后直接发送到打印打印,也可以导出。即把打印出的语句换成保存函数。public static class myPrintByOffice { public static void byDoc(String t转载 2011-07-14 17:53:45 · 1354 阅读 · 0 评论 -
C# 文件压缩与解压(ZIP格式)
在企业开发过程中经常会遇到文件的压缩与解压,虽然网上很多流行的压缩文件格式都是RAR的,但是由于RAR不是一个开放的标准,因此ZIP成了更多人的选择。如果你不想自己开发的话可以选择开源的项目,比如SharpZipLib就是一个不错的选择。组件的使用比较简单,请参照下面的代码。转载 2011-08-01 20:53:38 · 506 阅读 · 0 评论 -
通过WMI实现远程创建共享目录,远程拷贝文件等操作
通过WMI实现了远程创建共享目录,远程拷贝文件等操作: 代码下载using System;using System.Collections.Generic;using System.Text;using System.Management;using Sy转载 2011-08-01 20:55:10 · 1336 阅读 · 1 评论 -
C#获取CPU占用率、内存占用、磁盘占用、进程信息
using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading; using System.IO; using System.Text; using System.Management; using System.Runtime.Intero原创 2011-11-21 16:37:26 · 6404 阅读 · 0 评论 -
c#获取本机电脑相关信息
类HardInfoClass代码如下using System; using System.Net;using System.Runtime.InteropServices; using System.Management; //需要在解决方案中引用System.Management.DLL文件namespace FileTransLate.PCStatus{ /转载 2011-11-21 16:30:48 · 117 阅读 · 0 评论 -
C#中得到程序当前工作目录和执行目录的五种方法
C#中得到程序当前工作目录和执行目录的五种方法string str="";str += "\r\n" + System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;str += "\r\n" + System.Environment.CurrentDirectory;str += "\r\n" + Sy原创 2014-06-11 10:11:27 · 885 阅读 · 0 评论