【C#.NET】
文章平均质量分 63
kcseason
我是一只来自火星的蜗牛 ...
展开
-
C#的String.Split 方法
String.Split 方法有6个重载函数: 程序代码1) public string[] Split(params char[] separator)2) public string[] Split(char[] separator, int count)3) public string[] Split(char[] separator, StringSplitOpt原创 2009-07-07 09:18:00 · 484 阅读 · 0 评论 -
[C#] 一个简单的C#多线程间同步的例子
在开发中经常会遇到线程的例子,如果某个后台操作比较费时间,我们就可以启动一个线程去执行那个费时的操作,同时程序继续执行。在某些情况下可能会出现多个线程的同步协同的问题,下面的例子就展示了在两个线程之间如何协同工作。这个程序的思路是共同做一件事情(从一个ArrayList中删除元素),如果执行完成了,两个线程都停止执行。代码如下:using System;using转载 2009-06-04 13:20:00 · 500 阅读 · 0 评论 -
[C#] C#多线程学习(六) 互斥对象
如何控制好多个线程相互之间的联系,不产生冲突和重复,这需要用到互斥对象,即:System.Threading 命名空间中的 Mutex 类。我们可以把Mutex看作一个出租车,乘客看作线程。乘客首先等车,然后上车,最后下车。当一个乘客在车上时,其他乘客就只有等他下车以后才可以上车。而线程与Mutex对象的关系也正是如此,线程使用Mutex.WaitOne()方法等待Mutex对转载 2009-06-04 13:20:00 · 348 阅读 · 0 评论 -
[C#] C#多线程学习(三) 生产者和消费者
前面说过,每个线程都有自己的资源,但是代码区是共享的,即每个线程都可以执行相同的函数。这可能带来的问题就是几个线程同时执行一个函数,导致数据的混乱,产生不可预料的结果,因此我们必须避免这种情况的发生。C#提供了一个关键字lock,它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。在C#中,关键字转载 2009-06-04 13:16:00 · 408 阅读 · 0 评论 -
[C#] C#多线程学习(一) 多线程的相关概念
什么是进程?当一个程序开始运行时,它就是一个进程,进程包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的。什么是线程?线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。什么是多线程?多线程是指程序中包含多个执行流,即在一个程序中可以转载 2009-06-04 13:09:00 · 538 阅读 · 0 评论 -
[C#] 反射的用法
在网上查找了不少的资料,可以说大同小异,概念性的东西网上一搜一堆,今天把反射的东西整理了一下,供大家使用,我保证我这里是最全面的东西,当然也是基础的东西,在学好了这一切的基础上,大家可以学习反射的具体插件等应用,老鸟就不用看了.首先我们建立一个类库,将它生成为HelloWorld.dll,using System; namespace Webt原创 2009-06-02 14:14:00 · 396 阅读 · 0 评论 -
[C#] int ,int parse(),convert.toint32 区别
转载 2009-06-01 15:08:00 · 388 阅读 · 0 评论 -
[C#] 利用反射动态创建对象
在VS.Net中,有很多种方法动态调用对象的构造函数。一是通过Activator类的CreateInstance()方法。这个方法我们在Remoting中也用过。它实际上是在本地或从远程创建对象类型,或获取对现有远程对象的引用。它的方法签名是:public staticobject CreateInstance(Type);(还有其他重载方法)注意它的返回值为object,MSDN对原创 2009-06-02 13:32:00 · 661 阅读 · 0 评论 -
[C#]从C# 2.0新特性到C# 3.5新特性
一、C# 2.0 新特性:1、泛型ListMyObject> obj_list=new List();obj_list.Add(new MyObject());2、部分类(partial)namespace xxx{ public partial class Class1 { private string _s1; public string S1转载 2009-05-21 14:06:00 · 567 阅读 · 0 评论 -
[C#] C#复制文件和文件夹
C#拷贝文件原来的文件路径名FileOldPath; 新的文件路径名:FileNewPath, 那就可以用 File.Move(FileOldPath,FileNewPath) 或者File.Copy(FileOldPath,FileNewPath) 注意的是这里的路径是文件夹路径+文件名,可以用Path.Combine()来实现C#复制文件夹 Directory转载 2009-07-29 14:40:00 · 1253 阅读 · 0 评论 -
[C#] SourceGrid 2.0_ 翻译
SourceGrid 2.0下载来源和二进 - 825 KbDownload Source and Binary - 825 Kb 下载文件编写 - 1.35 MBDownload Documentation - 1.35 MB 官方的 SourceGrid 网站Official SourceGrid Website l 介绍l转载 2009-07-31 07:28:00 · 1624 阅读 · 0 评论 -
[C#] 如何有效的使用C#读取文件
如何有效的使用C#读取文件 你平时是怎么读取文件的?使用流读取。是的没错,C#给我们提供了非常强大的类库(又一次吹捧了.NET一番),里面封装了几乎所有我们可以想到的和我们没有想到的类,流是读取文件的一般手段,那么你真的会用它读取文件中的数据了么?真的能读完全么?通常我们读取一个文件使用如下的步骤:1、声明并使用File的OpenRead实例化一个文件流对象,就像下面这样FileStre转载 2009-07-31 02:17:00 · 813 阅读 · 0 评论 -
[C#] 白话C#:序
白话C#:序之前我写过一些技术文章,尝试着将一些艰涩的理论性技术知识与日常生活中常常碰到的事物结合在一起,通过它们之间的共同点和相似之处来介绍和探讨一些书本上不易理解和记忆的知识点,收到了一定的效果,在此我要感谢支持我和提出各种批评建议的朋友。欧美技术书籍中的“Head First”系列推出时引起了不小的震动,最重要的因素可能就是让世人意识到了:“哦,原来技术书籍还可以这样写!”我不转载 2009-06-04 13:23:00 · 397 阅读 · 0 评论 -
[C#] 白话C#:接口
白话C#:接口接口是体现面向对象编程思想优越性的一件利器,为什么这么说呢?首先我们来看,接口是为继承而存在的,如果没有继承,那就自然不需要接口了,既然有继承,那就需要把可能被多个类所继承的一些公共部分抽象出来,接口封装的就是这些公共的行为规范(方法定义),类可以通过继承多个接口来丰富自己的行为机制,但是在C#中,类是不可以继承多个类的。C#最显著的特点就是极大地提高了程序的开发效转载 2009-06-04 13:26:00 · 400 阅读 · 0 评论 -
[C#] 白话C#:多线程
白话C#:多线程多线程是程序员面试时常常会面对的问题,对多线程概念的掌握和理解水平,也会被一些老鸟用来衡量一个人的编程实力的重要参考指标。不论是实际工作需要还是为了应付面试,掌握多线程都是程序员职业生涯中一个必须经过的环节。其实当你把“多线程”和你的“职业生涯”联系在一起考虑的时候,就会觉得“多线程”是多么的渺小,对,没有跨越不过的山。不过就算它很渺小,但也有可能改变你的人生轨迹转载 2009-06-04 13:28:00 · 512 阅读 · 0 评论 -
C#写文件
C#文件处理操作必须先导入命名空间:using System.IO;//实现背景:一个文本框、一个按钮、VS2005方式一:用FileStream//实例化一个保存文件对话框 SaveFileDialog sf = new SaveFileDialog(); //设置文件保存类型 sf.Filt转载 2009-06-19 15:57:00 · 631 阅读 · 0 评论 -
.NET 常用代码
1.获取当前页面的URL 正确的方法是:HttpContext.Current.Request.Url.PathAndQuery2.自增 DataBinder.Eval ( Container , "ItemIndex" )或者用一个变量,在前台页面处比如这样写: i++3. 表格的边界限制—————转载 2009-06-16 15:00:00 · 592 阅读 · 0 评论 -
c#.net常用函数列表
1、DateTime 数字型 System.DateTime currentTime=new System.DateTime(); 1.1 取当前年月日时分秒 currentTime=System.DateTime.Now; 1.2 取当前年 int 年=currentTime.Year; 1.3 取当前月 int 月=currentTime.Month; 1.4转载 2009-06-16 14:55:00 · 391 阅读 · 0 评论 -
byte 类型转 sbyte 类型
这段时间用 Java 写了一个WebService,其中有一个功能就是将上传的文件保存在服务器上。Java 在对文件进行读写操作时用于保存文件内容的数据类型为byte[],所以 WebSerivce 中自然有 byte[] 类型的参数。但当我用 C# 进行调用的时候报错说 byte 不能隐式转换为sbyte。经上网搜索发现 Java 中的 byte 为有符号 8 位整数,等于转载 2009-06-16 14:53:00 · 1349 阅读 · 0 评论 -
[C#] 白话C#:泛型
白话C#:泛型泛型是C# 2.0版本才开始有的语言特性,不过“泛型”这个概念并不是最先出现在编程领域的,例如C++中的模板。List就是一个泛型应用。你可以在需要时声明一个强类型的List实例,然后随意地往里面添加、删除和查询同一类型的元素。泛型就是一个非常方便的数据结构,长期使用C#的朋友大多都常常用到泛型。本文就简单地通过创建自己的泛型类来介绍一下泛型,希望能够加深初学者转载 2009-06-04 13:27:00 · 470 阅读 · 0 评论 -
[C#] 白话C#:特性
白话C#:特性首先要说的是,可能一些刚接触C#的朋友常常容易把属性(Property)跟特性(Attribute)弄混淆,其实这是两种不同的东西。属性就是面向对象思想里所说的封装在类里面的数据字段,其形式为: 1: public class HumanBase 2: { 3: public string Name { g转载 2009-06-04 13:25:00 · 601 阅读 · 0 评论 -
[C#] C#多线程学习(二) 如何操纵一个线程
下面我们就动手来创建一个线程,使用Thread类创建线程时,只需提供线程入口即可。(线程入口使程序知道该让这个线程干什么事)在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,你可以把ThreadStart理解为一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。转载 2009-06-04 13:10:00 · 422 阅读 · 0 评论 -
[C#] .net网络编程之一:Socket编程
在.net下进行网络编程其实也相对比较简单,因为在.net类库已经提供了大量封装好的类。在.net下网络编程比较底层的类是System.Net.Sockets.Socket类,这个类提供了丰富的方法和属性,并且还提供了异步数据传输支持。对Socket类做一个简单的介绍,它有如下常见方法:public Socket Accept ():为新建连接创建新的 Socket。 publ原创 2009-06-02 18:01:00 · 560 阅读 · 0 评论 -
[C#] C#编写事件或委托时如果处理不好会造成内存泄漏
用C#编写事件或委托时如果处理不好会造成内存泄漏,看下面代码: public class DoA2EventArgs : EventArgs { } public class ClassA { public delegate void DoAEventHandler( object sender, EventArgs e); public even转载 2009-06-04 15:51:00 · 1361 阅读 · 0 评论 -
[C#] 白话C#:委托与事件
白话C#:委托与事件我们出去吃饭,总是喜欢去人多生意好的馆子,因为这样的馆子往往味道和服务都比较好,而那些生意冷清的馆子往往无人问津。生意好的馆子固然有其长处,但去这样地方就餐又总是需要先排队等位置,所以排号是比较流行的方式。当然,如果这家馆子的座位充足,就不需要排号,但是上菜又比较慢。无论怎样,如果厨房一时半会儿无法做好你的菜,那么你就只好耐心地等待,在这个时候你可以做自己的事转载 2009-06-04 13:31:00 · 462 阅读 · 0 评论 -
[C#] 白话C#:反射
白话C#:反射反射是一种晚绑定,它可以被开发者用来设计出更具灵活性的代码,而代价则是花费更多的系统资源开销使得应用程序可以在运行时获取一些未知信息。说白了,在编写代码的时候,开发者可能还不知道或不能确定一些对象的信息,于是把决定权交给代码本身,将来在需要的时候由代码自己去获取和判断这些信息并作出相应的反应。这样的方式固然可以使代码更加灵活,但在想要使用反射的时候,必须先考虑好在性转载 2009-06-04 13:29:00 · 445 阅读 · 0 评论 -
[C#] 在.NET(C#)中获取电脑名IP地址及当前用户名
在.NET中获取一台电脑名,IP地址及当前用户名是非常简单,以下是我常用的几种方法,如果大家还有其他好的方法,可以回复一起整理: 1. 在ASP.NET中专用属性: 获取服务器电脑名:Page.Server.ManchineName 获取用户信息:Page.User 获取客户端电脑名:Page.Request.UserHostN转载 2009-07-30 07:40:00 · 882 阅读 · 0 评论 -
[C#]C# 3.5 语言新特性
C# 3.0 和 Visual Basic 9.0 在语言上有许多新特性,并完全结合了基于语言的查询综合(Linq, LanguageIntegrated Query)技术。为适应 Linq 技术,这些语言必须有一些变化。本文描述 C# 3.0 在 2007 年 4 月发布的Visual Studio 代号 “Orcas” 测试版 1 中的新特性。本文适用于:Visual Studio转载 2009-05-21 16:07:00 · 649 阅读 · 0 评论 -
[C#] C#编码好习惯
1. 避免将多个类放在一个文件里面。 2. 一个文件应该只有一个命名空间,避免将多个命名空间放在同一个文件里面。3. 一个文件最好不要超过500行的代码(不包括机器产生的代码)。4. 一个方法的代码长度最好不要超过25行。5. 避免方法中有超过5个参数的情况。使用结构来传递多个参数。6. 每行代码不要超过80个字符。7. 不要手工的修改机器产生的代码。a) 如果需要编辑转载 2008-06-03 13:37:00 · 373 阅读 · 0 评论 -
[面向对象]面向对象设计原则
一、单一职责原则(SRP) 就一个类而言,应该仅有一个引起它变化的原因。软件设计真正要做的许多内容,就是发现职责并把那些职责相互分离。测试驱动的开发实践常常会在设计出现臭味之前就迫使我们分离职责。 二、开闭原则(OCP) 软件实体(类、模块、函数)应该是可扩展的,但是不可修改的。也就是说:对于扩展是开放的,对于更改是封闭的。怎样可能在不改动模块源代原创 2008-05-12 19:37:00 · 445 阅读 · 1 评论 -
[C#] 如何创建、读取cookie
用C#如何创建、读取cookie:一、创建cookie,并写入数据: //创建、写入Cookie HttpCookie cookie = Request.Cookies["MWS_User"]; if (cookie == null) ...{ cookie = new HttpCookie("MWS_User"); } cookie原创 2008-05-08 13:03:00 · 1431 阅读 · 0 评论 -
[C#] 值类型与引用类型的区别?
.NET将数据类型分为值类型(value type)和引用类型(reference type)一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表数据本身。值类型的数据具有较快的存取速度。一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而原创 2008-05-08 12:56:00 · 466 阅读 · 0 评论 -
int32.Parse 与Convert.toInt32 区别?
int32.Parse 将数字的字符串表示形式转换为它的等效 32 位有符号整数。 我经常需要把string形式的数字转换成int,通常有两个方法可以实现,看下面的代码:转载 2008-05-06 12:13:00 · 1032 阅读 · 0 评论 -
ado.net读书笔记系列(.net对象)
一、。NET数据提供程序 。Net框架提供数据提供程序:SQL Client .NET Data Provider和Ole DB .NET Data Provider.前者专为SQL Server7以及以后的版本的数据库进行通信而设计,后者允许通过OLE DB提供程序与各种数据存储进行通信。无论使用哪种方式,所编写的代码都很相似。 二、对象分类概述 1、 连接的对象转载 2008-03-13 16:21:00 · 465 阅读 · 0 评论 -
你必须知道的.NET之恩怨情仇:is和as
1. 引言 类型安全是.NET设计之初重点考虑的内容之一,对于程序设计者来说,完全把握系统数据的类型安全,经常是力不从心的问题。现在,这一切已经在微软大牛们的设计框架中为你解决了。在.NET中,一切类型都必须集成自System.Object类型,因此我们可以很容易的获得对象的准确类型,方法是:GetType()方法。那么.NET中的类型转换,应该考虑的地方有那些呢? 2. 概念引入 类型转换转载 2008-03-13 16:01:00 · 397 阅读 · 0 评论 -
用.NET框架实现序列化
序列化是将一个对象保存到存储介质上或者将对象进行转换使之能够在网络上传送的行为。在一个对象被序列化之后,你会想要将它反序列化,也就是将数据重新转换为可用的对象的行为。这种类型的功能被用在一个对象必须被从一个上下文封送到另一个上下文的时候,例如当对象跨越App域的时候。另外一个例子是Web服务——对象在服务器上被序列化,通过网络被(封送或)发送到的客户端,然后被反序列化成有用的对象。 从二进制到X转载 2008-03-13 15:59:00 · 420 阅读 · 0 评论 -
.net程序员的盲点(一):参数修饰符ref,out ,params的区别
C#中有三个关键字-ref,out ,params,虽然本人不喜欢这三个关键字,因为它们疑似破坏面向对象特性。但是既然m$把融入在c#体系中,那么我们就来认识一下参数修饰符ref,out ,params吧,还有它们的区别。NO.1 params一个可以让方法(函数)的拥有可变参数的关键字。原则:在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关转载 2008-03-13 15:55:00 · 375 阅读 · 0 评论 -
.NET开发中的一些小技巧
这篇文章来自是Mukund Pujari的《Some Cool Tips for .NET》,本人给大家翻译总结一下,我英语水平也就那么回事,不合适的地方还是请大家提出来。 1. 如何创建一个可改变大小没有标题栏的窗体?(How to create a form with resizing borders and no title翻译 2008-03-13 16:31:00 · 381 阅读 · 0 评论 -
.net程序员的盲点(二):两个“属性”引起的歧异-property和attribute的区别
两个“属性”引起的歧异-property和attribute的区别 这虽然没有“一个馒头引发的血案”那么严重,但是也足以成为.net程序员的技术盲点之二。对于property和attribute这两个名词都叫“属性”的问题,来源于国内it书籍翻译界的疏忽。其实它们来源于两个不同的领域,attribute属于OOA/OOD的概念,而property属于编程语言中的概念。下面我们来说明它们的异同。At转载 2008-03-13 15:56:00 · 407 阅读 · 0 评论 -
[C#] 委托delegate
delegatedelegate 声明定义一种引用类型,该类型可用于将方法用特定的签名封装。委托实例封装静态方法或实例方法。委托大致类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。声明采用下列形式:[attributes] [modifiers] delegate result-type identifier ([formal-parameters]);转载 2008-06-03 14:16:00 · 415 阅读 · 0 评论