C#
文章平均质量分 51
iamdll
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
获取屏幕大小
屏幕的大小有两种情形:(1)整个屏幕的大小,包括工具栏的大小。方法是用函数int WINAPI GetSystemMetrics( __in int nIndex);用法:int xScreen = GetSystemMetrics(S原创 2011-09-14 14:39:44 · 1367 阅读 · 0 评论 -
C#读取doc,pdf,ppt文件
doc pdf ppt与 txt之间的转换 :组件的作用一般是将文件读出成字符格式,并不是单纯的转换文件名后缀,所以需要将读出的东西写入txt文件 。 添加office引用.net中对office中的word及ppt进行编程时,确保安装office时已经安装了word,ppt可编程组件(自定义安装时可查看)或者安装“Microsoft Office 2003 Primar转载 2014-02-11 15:51:32 · 2484 阅读 · 0 评论 -
C#读取pdf文件
方法二: 利用PDFBox一、下载PDFBox 访问网址http://sourceforge.net/projects/pdfbox/ (这个绝对是个好网站)二、引用动态链接库 解压缩下载的PDFBox,找到其中的Bin目录,需要在项目中添加引用的dll文件有: IKVM.GNU.Classpath.dll, PDFBox-0.7.3.dl原创 2014-03-05 10:35:49 · 18963 阅读 · 3 评论 -
通过ConfigurationSection来轻松地加载配置文件
最近写了一段自定义的ConfigurationSection继承类,通过该class可以轻松得定义和读取配置文件信息,注意这里使用的是c# 2.0来实现的,相比1.1必须通过实现IConfigurationSectionHandler接口来自定义配置节点类方便多了不论是web.config还是app.config,都可以使用ConfigurationManager类加载配置文件中自定义的节转载 2013-11-07 14:55:18 · 4664 阅读 · 0 评论 -
Array和ArrayList的区别
相信数组是大家在编程最常使用的,不论任何语言都存在数组这样的数据结构,由于C#语言是完全面向对象的,所以在C#中的数组也是对象,实际上就是Array类的实例,Array类的使用可以说是使用最频繁的,只是大家在使用时都没太在意,如在创建数组int[]时实际上就创建了一个Array类对象的实例。最近我仔细研究了一下C#中的Array及ArrayList类之间的异同,总结了以下几点:[Arr转载 2013-11-07 14:07:06 · 680 阅读 · 0 评论 -
C#WinForm仿qq窗体拖到windows窗体边上时,自动隐藏C#WinForm
C#WinForm仿qq窗体拖到windows窗体边上时,自动隐藏C#WinForm。代码: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void For转载 2013-05-16 10:58:05 · 930 阅读 · 0 评论 -
C#里面如何利用流获取一个记事本内容的行数
//设置所读取文件的路径 string txtPath = @"D:\mytxt.txt"; string content = ""; int lineCount = 0; //设置读取流StreamReader与编码方式 using转载 2013-05-09 15:07:32 · 1590 阅读 · 0 评论 -
如何实现环形Loading
看一看效果 此控件设置了常用的外观属性 例如主题色彩 线条宽度 内圆大小 外圆大小都可以调节提供2个对外的方法Start() Stop()控制控件的行为 调用Start()动画开始 Stop()结束动画还原到初始状态以下是字段 该控件继承自Control类 代码 1 private Timer _Timer; 2 private bool _IsLoadin转载 2013-01-22 14:25:07 · 609 阅读 · 0 评论 -
C#操作Excel
Excel.ApplicationClass acExcel = new Excel.ApplicationClass(); if (acExcel == null) { SunValley.BarCode.Com.MsgBox.PromptInfo("请确定是否安装了Excel");转载 2011-11-25 09:41:37 · 600 阅读 · 0 评论 -
Delegate的使用
Delegate类简介------------------------ 命名空间:System程序集:mscorlib(在 mscorlib.dll 中) 委托(Delegate)类是一种数据结构,通过它可引用静态方法或引用类实例及该类的实例方法。 以往的界面编程中我们应该都接触过各种类型的事件驱动(event driven)的处理模式,在这种模式里,我们定义相应事件触发的函数。例如:Butt转载 2014-03-10 14:27:39 · 574 阅读 · 0 评论 -
C#操作XML
写的一个XML操作类,包括读取/插入/修改/删除。using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;us转载 2011-09-07 22:16:58 · 469 阅读 · 0 评论 -
lock为什么只能锁定引用不能锁定值类型
他要的就是引用类型,如果你传一个值类型,会装箱,下次代码运行到这里,又会装箱,两次不是同一个对象,所以锁不住lock(x){ ...}实际是通过Monitor对象完成的锁:上面等同于:System.Object obj = (System.Object)x;System.T原创 2011-07-12 19:04:58 · 2313 阅读 · 0 评论 -
C#中的运行时类型与编译时类型
C#中的运行时类型与编译时类型 相信很多刚学C#的人都对这两个概念感到迷惑,其时并不难(以前太重于技术可用性,比如:asp.net中的DataDrid怎么用等问题,没大研究过这方面),希望能对C#初学者有所帮助。请看如下代码:class A{...}clas转载 2011-07-12 19:11:35 · 742 阅读 · 0 评论 -
带参数的宏和函数的区别
1.函数调用时,先求出实参表达式的值,然后带入形参。而使用带参的宏只是进行简单的字符替换。2.函数调用是在程序运行时处理的,分配临时的内存单元;而宏展开则是在编译时进行的,在展开时并不分配内存单元,不进行值的传递处理,也没有“返回值”的概念。3.对函数中的实参和形参都要定义类型,二者的类型要求一致,如不一致,应进行类型转换;而宏不存在类型问题,宏名无类型,它的参数也无类型,只是一个符号代表,展开时带入指定的字符即可。宏定义时,字符串可以是任何类型的数据。4.调用函数只可得到一个返回值,而原创 2011-04-20 15:16:00 · 929 阅读 · 0 评论 -
构造函数实例的操作顺序
将所有的静态变量设置为0;执行静态变量初始化器;执行基类的静态构造器;执行当前类型的静态构造器;将所有的实例变量设置为0;执行实例变量初始化器;执行合适的基类实例构造器;执行当前类型的实例构造器。原创 2011-06-12 16:40:00 · 554 阅读 · 0 评论 -
全局变量、静态全局变量、静态局部变量和局部变量
<br />全局和静态变量都在堆里。<br /><br /><br />全局变量的作用范围是整个程序(如果程序是多个文件,必须在其他的文件中说明)。<br />静态变量的作用范围要看静态变量的位置,如果在函数里,则作用范围就是这个函数。<br /><br /><br />静态全局变量,只本文件可以用。<br /><br />全局变量是没有定义存储类型的外部变量,其作用域是从定义点到程序结束.省略了存储类型符,系统将默认为是自动型.<br /><br /><br />静态全局变量是定义存储原创 2011-04-20 15:10:00 · 621 阅读 · 0 评论 -
分析代码
分析以下代码: public static void CheckLength() { string str = "abcdefg某某某"; int i = System.Text.Encoding.Default.GetBytes(str).Length; int j = str.Length; Console.WriteLine(string.Format("i={0原创 2011-04-14 13:35:00 · 650 阅读 · 0 评论 -
基本概念
Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。原创 2011-04-18 15:58:00 · 410 阅读 · 0 评论 -
C# 3.0 介绍(二)
在第一篇中,我已经和大家简单介绍了linq。也和大家提起linq是C# 3.0里的一个特性。不过,你去装linq priview时,你会发现,它提供了许多vb的linq代码。从现在的情况看,linq会被移植到.net framework下。在本篇中,笔者将开始更加详细的介绍dlinq。同时,也会介绍很实用的技巧和方法。在这之前,你需要安装s2008 beta2版本。可以到 http://msd转载 2014-03-21 15:15:46 · 494 阅读 · 0 评论 -
C# 3.0 介绍 (一)
谈到dlinq,就不得不先说linq。让我们先看看什么是linq。linq是 Language Integrated Query的缩写。那么事实上dlinq就是 Database Language Integrated Query 的缩写。linq和dlinq最大的区别就在与linq是对内存进行操作,而dlinq的操作对象为数据库。我们先来看一个linq的例子。在这之前,你需要安装s2008转载 2014-03-21 15:14:41 · 456 阅读 · 0 评论 -
C#3.0介绍(十二)-Lambda表达式中Lifting
Lambda表达式是由匿名方法演化而来的更加高级的形式。关于匿名方法,请参阅http://msdn.microsoft.com/msdnmag/issues/04/05/C20/。关于Lambda表达式的演化,请参阅http://msdn.microsoft.com/msdnmag/issues/07/06/csharp30/default.aspx?loc=zh。英文原版为http://msdn转载 2014-03-21 15:36:09 · 642 阅读 · 0 评论 -
C# 3.0 Dlinq介绍(四)-之Select操作
先给关注dlinq的朋友们道歉,最近工作实在忙,没有时间来写blog。从本节开始,我们讲dlinq语法咯。我们先从select子句讲起。看下面的例子。 var q = from c in db.Customers select c.ContactName;这是一个最简单的dlinq查询语句,查询得到联系人的名字。在这里,我需要提醒下大家的是,像转载 2014-03-21 15:17:54 · 560 阅读 · 0 评论 -
C# 3.0 介绍(六) - 用object的动态查询与保存log篇
动态的生成sql语句,根据不同的条件构造不同的where字句,是拼接sql 字符串的好处。而Linq的推出,是为了弥补编程中的 Data != Object 的问题。我们又该如何实现用object的动态查询呢?1,用object的查询是什么?我们可以简单的举这么一个例子。我们到公安局查找一个人。首先,我们会给出他的一些特征,比如,身高多少,年龄多少,性别,民族等。那么,我们把这个人的一转载 2014-03-21 15:22:57 · 588 阅读 · 0 评论 -
C# 3.0 介绍 (五) - 之Where操作
从本节开始,本文正式更名为C#3.0入门系列。先发布一则消息,VS2007 Beta版本已经发布咯,下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyID=1FF0B35D-0C4A-40B4-915A-5331E11C39E6&displaylang=en大家快去下载呀,我也好和大家一起体验该版本最新功能呀。dlin转载 2014-03-21 15:19:27 · 595 阅读 · 0 评论 -
C# 3.0介绍 (九)- GroupBy操作
有朋友反馈说我提供的sample不能编译。大概是版本的问题,可以到http://msdn2.microsoft.com/en-us/bb330936.aspx下载for beta1的版本。本节接着讲groupby。上一节,我们讲了如何理解groupby返回的结果。本节会延这个思路阐述下去。先来看下面的例子GroupBy操作中Select的匿名类 var q转载 2014-03-21 15:32:31 · 1258 阅读 · 0 评论 -
C#3.0介绍(八)-之GroupBy操作
换一种写作风格。本节讲groupby操作。在所有的Linq To Sql操作中,GroupBy是最难理解的一个。因为,这里和Sql的出入较大。而Group真的就能返回n多组。打开vs,新建一工程,加入System.Data.Linq.dll的引用。把northwind数据库做个映射,添加到工程里。创建一Northwind类的对象。在这里呢,我们要做分组统计,我们要先明白什么是分组。在我转载 2014-03-21 15:31:34 · 1868 阅读 · 0 评论 -
C# 3.0 介绍(七) - 动态查询续及CLR与SQL在某些细节上的差别
在上面一篇文章Linq To Sql进阶系列(六)中,我们提到了使用object的动态查询。本文在上文的基础上,再做更加深入的引申。同时修正上文中一些不妥的地方。1, object的动态查询续首先要做的事情,就是将Find的函数改成扩展方法。扩展方法只能放在静态类里,而且它的第一个参数必须带this关键字。在上文中,作者留下了一个迷题。当需要or条件时,又该如何做呢?本文也将这个问题给转载 2014-03-21 15:25:10 · 582 阅读 · 0 评论 -
C# 3.0 介绍(三)
从本节开始,笔者将会和大家一起开始体验dlinq了。前面我们准备了数据库,也对数据库之间的关系做了初步的了解。有了数据库之后,数据和对象是一个什么样的关系呢?从dlinq的设计来看,它主要是为了解决data!=objects 的问题而产生的。那么,现在,有了dlinq后数据和对象之间就可以有一个一一对应的关系了。我们既可以根据数据库生成这种影射的代码,也可以根据影射代码生成数据库。简单的说,数据库转载 2014-03-21 15:16:35 · 510 阅读 · 0 评论 -
C# 3.0介绍 (十) - Join
本节讲join操作。我们知道,T-sql中,有三种最基本的join,inner join, left join, 和right join。 而dlinq并不支持right join。道理很简单,right join以right表为基础,left表中没有对应记录的,将以null值填充。而dlinq以left表做为主表创建对象。如果一个对象为null,你如何获取它的其他的属性呢?在C# 3.0转载 2014-03-21 15:33:51 · 442 阅读 · 0 评论 -
C# 3.0介绍(十一) - In,Like操作
有这么一个例子,寻找一个表中的某个字段介于某个给定的集合该怎么办?Sql写起来很简单,比如:Select * from table where id in (2,3, 4, 5)。 就是寻找id字段为这个给定的集合(2,3, 4, 5)内的值。那Linq to Sql该怎么做呢?一个字,简单。In Operator 比如,我们想要查找,"AROUT", "BOLID" 和 "FISSA转载 2014-03-21 15:35:08 · 724 阅读 · 0 评论 -
cookie 和session 的区别详解
cookie 和session 的区别详解这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断转载 2014-05-08 13:33:55 · 607 阅读 · 0 评论 -
C#中随机生成指定长度的密码
/// /// C#中随机生成指定长度的密码/// private static string MakePassword(int pwdLength) { //声明要返回的字符串 string tmpstr = ""; //密码中包含的字符数组 string pwdchars="abcdefghijklmnopqrstuv转载 2015-09-08 12:50:41 · 5968 阅读 · 0 评论 -
C# 面经
1.叙述Page页面的生命周期。(即写出Page几个主要的事件运行顺序) 对象初始化 OnInit 加载视图状态数据 LoadViewState 处理回传数据 LoadPostData 对象加载 Load -> OnLoad 激发RaisePostDataChanged 事件 处理客户端回传事件 RaisePostBackEvent 对象预呈现 OnPreRender 保存视图原创 2011-02-21 16:42:00 · 2089 阅读 · 0 评论 -
C# 对象深拷贝、浅铐贝、直接拷贝
C#中有两种类型变量,一种是值类型变量,一种是引用类型变量。对于前者,copy是属于全盘复制;而对于后者,一般的copy只是浅copy,相当于只传递一个引用指针一样。因此对于后者进行真正copy的时候,也是最费事的,具体的说,必须为其实现ICloneable接口中提供的Clone方法。<br /> 浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.<br /> 深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.<转载 2011-02-23 16:57:00 · 668 阅读 · 0 评论 -
深刻剖析经典面试题之一:堆和栈的区别
<br />堆(heap)和栈(stack)的区别<br />一、预备知识—程序的内存分配<br />一个由c/C++编译的程序占用的内存分为以下几个部分<br />1、栈区(stack)—由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。<br />2、堆区(heap)—一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。<br />3、全局区(静态区)(static)—全局变量转载 2011-02-24 11:17:00 · 372 阅读 · 0 评论 -
session 和 cookie 的区别
<br />Session是由应用服务器维持的一个服务器端的存储空间,用户在连接服务器时,会由服务器生成一个唯一的SessionID,用该SessionID 为标识符来存取服务器端的Session存储空间。而SessionID这一数据则是保存到客户端,用Cookie保存的,用户提交页面时,会将这一 SessionID提交到服务器端,来存取Session数据。这一过程,是不用开发人员干预的。所以一旦客户端禁用Cookie,那么Session也会失效。<br /><br />服务器也可以通过URL重写的方式转载 2011-02-23 16:13:00 · 408 阅读 · 0 评论 -
Windows Communication Foundation入门(Part One)
<br />前言:WCF是微软基于SOA(Service OrientedArchitecture)推出的.Net平台下的框架产品,它代表了软件架构设计与开发的一种发展方向,在微软的战略计划中也占有非常重要的地位。了解和掌握WCF,对于程序员特别是基于微软产品开发的程序员而言,是非常有必要的。对于WCF,笔者也是初窥门径,抱着学习的态度作这样的一个介绍。文中的内容主要参考了微软官方的文档、资料,以及众多介绍WCF的技术资料。这些资料主要都是英文,不便于国内程序员学习WCF。虽然本人才疏学浅,却愿转载 2011-02-23 10:55:00 · 429 阅读 · 0 评论 -
C#面试题2
public sealed class Singleton1 { Singleton1() { Console.WriteLine("Singleton1 constructed"); } static Singleton1() { Console.WriteLine("Singleton1原创 2011-03-14 14:32:00 · 397 阅读 · 0 评论 -
Microsoft .NET Framework 3.0
关于 Microsoft .NET Framework 3.0<br />Microsoft .NET Framework 3.0(以前称为 WinFX),是用于 Windows 的新式托管代码编程模型。它将.NET Framework 2.0的功能和新的结构构建应用程序技术完美结合,可提供夺目的用户视觉体验、实现跨越技术边界的无缝通信,并支持广泛的业务流程。Microsoft计划将 .NET Framework 3.0 作为 Windows Vista 的一部分来提供。同时,Microsoft转载 2011-02-23 15:25:00 · 757 阅读 · 1 评论 -
Windows Communication Foundation入门(Part Three)
<br />示例代码下载:DuplexSample.rar<br />四、Service Contract编程模型<br />在Part Two中,我以“HelloWorld”为例讲解了如何定义一个Service。其核心就是为接口或类施加ServiceContractAttribute,为方法施加OperationContractAttribute。在Service的方法中,可以接受多个参数,也可以有返回类型,只要这些数据类型能够被序列化。这样一种方式通常被称为本地对象,远程过程调用(loc转载 2011-02-23 10:56:00 · 472 阅读 · 0 评论
分享