C#基础知识
文章平均质量分 78
shashawoyao
这个作者很懒,什么都没留下…
展开
-
c#委托与事件
<br />委托的声明<br />public delegate void MyDelegate(string str);<br />注<br />1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种类型。是一种特殊的类型,看成是一种新的对象类型比较好理解。用于对与该委托有相<br />同签名的方法调用。<br />2.委托相当于C++中的函数指针,但它是类型安全的。<br />3.委托是从System.Delegate派生,但不能象定义常规类原创 2011-02-26 15:10:00 · 360 阅读 · 0 评论 -
结构体类型与枚举类型
枚举类型枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。 例如,假设您必须定义一个变量,该变量的值表示一周中的一天。 该变量只能存储七个有意义的值。 若要定义这些值,可以使用枚举类型。枚举类型是使用 enum 关键字声明的。 enum Days { Sunday, Monday, Tuesday, Wednesday, Thursday,转载 2013-08-08 10:01:58 · 1609 阅读 · 0 评论 -
C#集合
System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。System.Collections.Specialized 命名空间包含专用的和强类型的转载 2013-08-08 10:38:16 · 692 阅读 · 0 评论 -
C#异常处理
本章概要:1:为什么需要异常 2:finally 3:什么时候需要捕获异常 4:什么时候需要抛出异常 5:异常处理中的错误做法 6:为什么需要自定义异常 7:自定义异常的设计要素 8:什么时候不需要自定义异常 1:为什么需要异常 利用异常处理,我们可以将资源清理代码放在一个固定的位置,并且确保它们得到执行。 利用异常处理,我们可转载 2013-08-08 10:47:43 · 1008 阅读 · 0 评论 -
C# I/O操作
本章概要:1:基本文件I/O 1.1:用于文件 I/O 的类 1.2:用于从流读取和写入流的类 1.3:通用 I/O 流类2:通用I/O任务 以下的区别有助于澄清文件和流的差异。文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。因此,关于文件,人们常会想到目录路径、磁盘存储、文件和目录名等方面。相反,流提供一转载 2013-08-08 10:54:13 · 1193 阅读 · 0 评论 -
C#泛型
泛型(generic)是C#语言2.0和通用语言运行时(CLR)的一个新特性。泛型为.NET框架引入了类型参数(type parameters)的概念。类型参数使得设计类和方法时,不必确定一个或多个具体参数,其的具体参数可延迟到客户代码中声明、实现。这意味着使用泛型的类型参数T,写一个类MyList,客户代码可以这样调用:MyList, MyList或 MyList。这避免了运行时类型转换或装箱操转载 2013-08-08 11:00:06 · 804 阅读 · 0 评论 -
C#反射
反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获得.NET中每一个类型(包括类、结构、委托、接口和枚举等)的成员,包括方法、属性、事件,以及构造函数等。还可以获得每个成员的名称、限定符和参数等。有了反射,即可对每一个类型了如指掌。如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道。 1、.NET可执行应用程序结构 程序转载 2013-08-08 11:05:05 · 622 阅读 · 0 评论 -
C#特性Attribute
1、什么是Atrribute 首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为转载 2013-08-08 11:11:02 · 694 阅读 · 0 评论 -
Linq to XML编程
1、LINQ to XML类以下的代码演示了如何使用LINQ to XML来快速创建一个xml:隐藏行号 复制代码 ?创建 XMLpublic static void CreateDocument(){ string path = @"d:\website"; XDocument xdoc = new转载 2013-08-08 11:16:10 · 900 阅读 · 0 评论 -
可空类型
为什么需要可空类型? 例如,数据库中的某个字段可能包含值 true 或 false,但是它也可能根本不包含值。 System.Boolean b=GetDBColumnValue();//如果方法返回一个null值,会收到编译错误。 同样,可以将引用类型设置为 null,以指示它们未初始化。这种不一致会导致额外的编程工作,如使用附加变量来存储状态信息、使用转载 2013-08-08 10:05:19 · 701 阅读 · 0 评论 -
C#数组
数组数组是一组通过数字索引访问的的数据项。准确来说,数据是一组相同类型的数据点(如:int数组,string数组,Car数组)。int[] vInts=new int[3];//包含2个整型的数据,编号0~2string[] vStrings=new String[2];//包含2个字符串的数字,编号0、1数组声明中的数字就表示像的总数,而不是上界。数组的下界总是转载 2013-08-08 10:22:52 · 641 阅读 · 0 评论 -
C#操作符重载
<br />C#操作符重载是什么?<br />是指允许用户使用用户定义的类型编写表达式的能力。<br />例如,通常需要编写类似于以下内容的代码,以将两个数字相加。很明显,sum 是两个数字之和。<br />int i = 5; <br />int sum = i + j;<br />如果可以使用代表复数的用户定义的类型来编写相同类型的表达式,那当然是最好不过了:<br />Complex i = 5;<br />Complex sum = i + j;<br />运算符重载允许为用户定义的类型重载原创 2011-02-26 15:57:00 · 589 阅读 · 0 评论 -
C# 分部类与分部方法
一、分部类 什么是部分类呢?简单来说就是将一个类型或方法拆分到两个或多个源文件中,每个源文件只包含类型定义的一部分。 当使用自动生成的源时,无须重新创建源文件便可将代码添加到类中。Visual Studio在创建Window窗体,Web服务包装代码时都是使用此方法。分部类的特征 1、类的定义前要加partial。 2、分部类可以定义在两个不同的.cs文件,也可以定义在同一个转载 2013-08-08 11:23:34 · 1403 阅读 · 0 评论 -
C#值类型与引用类型
值类型与引用类型值类型:派生自System.ValueType类的类型是值类型,派生自ValueType的类型都会自动在栈(stack)上进行分配,因此有一个可预测的生命周期,而且非常高效。引用类型:在继承链上没有System.ValueType的类型(如System.Type、System.String、System.Array、System.Exception以及Sys转载 2013-08-08 09:59:56 · 631 阅读 · 0 评论 -
C#扩展方法
在我们的编程生涯中我们要使用很多很多类库,这些类库有的是我们自己开发的,我们有她的代码,有的是第三方发布的,我们不仅没有他们的代码,连看的机会都没有。作为.net程序员,我们每天都要和BCL(Base Class Linbrary)打交道。无疑,BCL做为一个年轻的框架类库,她是成功的,但是还有一些时候我们还是得写一些”Helper”方法来扩展类库,由于我们不能修改类库的源代码,我们只有写转载 2013-08-08 11:28:05 · 827 阅读 · 0 评论 -
c#接口与抽象类的区别
<br />abstract 修饰符用于表示所修饰的类是不完整的,并且它只能用作基类。抽象类与非抽象类在以下方面是不同的: <br />抽象类不能直接实例化,并且对抽象类使用 new <br />运算符是编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 <br />null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。 <br />允许(但不要求)抽象类包含抽象成员。 <br />抽象类不能被密封。 <br />当从抽象类派生非抽原创 2011-02-26 15:11:00 · 428 阅读 · 0 评论 -
abstract、virtual、override、new说明
<br />abstract<br />abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。<br /><br />在类声明中使用 abstract 修饰符以指示类只能是其他类的基类。<br /><br />抽象类具有以下特性:<br />·抽象类不能实例化。<br />·抽象类可以包含抽象方法和抽象访问器。<br />·不能用 sealed 修饰符修改抽象类,这意味着该类不能被继承。<br />·从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实原创 2011-02-26 15:13:00 · 359 阅读 · 0 评论 -
C#类型转换
<br />隐式转换是系统默认的、不需要加以声明即可进行的转换。<br />1.隐式数值转换<br />隐式数值转换实际上就是从低精度的数值类型转换到高精度的数值类型的转换。 byte x=255;ushort y=x;y=65535;float z=y;//均从低精度到高精度,反之会产生溢出隐式数值转换的类型太多,我就不多介绍,记住上面的原则就可以了。详细规则可查看msdn<br />2.隐式枚举转换<br />隐式枚举转换用于把十进制整数0转换成任何枚举类型,对应的其他整数则不存在这原创 2011-02-26 15:47:00 · 595 阅读 · 0 评论 -
Effective C# 使用IComparable和IComparer接口实现排序关系
<br />NET框架定义了两个接口来描述类型的排序关系:IComparable和IComparer。IComparable接口定义了类型的自然排序方式。IComparer则为类型提供了另外的排序方式。我们可以为类型实现各种关系操作符(<、>、<=、>=)来提供特定于类型的比较操作,从而避免接口实现所带来的运行时开销。本条款讨论如何通过两个接口IComparable和IComparer,来为类型实现排序关系,从而支持使用.NET框架对我们的类型进行排序,并帮助其他用户通过这些操作获取最佳的性能。原创 2011-02-26 15:52:00 · 551 阅读 · 0 评论 -
C#索引器
<br />一.索引器允许类或结构的实例按照与数组相同的方式进行索引,索引器类似于属性,不同之处在于它们的访问带参。<br />二.索引器与数组的比较<br /> a.索引器的索引值类型不受限为整数。<br /> b.索引器允许重载。<br /> c.索引器不是一个变量。(索引器并没有直接对应应用数据存储的地方,而数组则有,索引器有get和set访问器,用来指明要读取或写入元素时,需要执行的代码。)<br />三.索引器与属性的比较<br /> 识别方式:属性原创 2011-02-26 15:59:00 · 356 阅读 · 0 评论 -
趣味理解ADO.NET对象模型
<br />最近在学C#的时候看到的一些趣味理解,摘录下来,给新手学习一下。<br /><br />1、数据库就好比水源,存储了大量的数据。<br /><br />2、Connection好比伸入水中的进水笼头,保持与水的接触,只有它与水进行了“连接”,其他对象才可以抽到水。<br /><br />3、Command则像抽水机,为抽水提供动力和执行方法,通过“水龙头”,然后把水返给上面的“水管”。<br /><br />4、DataAdapter、DataReader就像输水管,担任着水的传原创 2011-02-28 21:22:00 · 355 阅读 · 0 评论 -
C# 命名规范
<br />Pascal:指名称中单词的第一个字母写,EmployeeSalary,ConfirmationDialog,PlainTextEncoding; camel:名称中第一个单词的第一个字母不是大写,如 employeeSalary,confirmationDialog,plainTextEncoding; 在C#中,命名空间,类,以及基类中的成员等名称遵循Pascal命名法,而传递给参数的所有参数,两个同名对象的区分用camel命名法,当然vb.net不区分大小写,需要区别对待。遵循这样的约定是原创 2011-02-28 21:31:00 · 464 阅读 · 0 评论 -
IEnumerable 与IEnumerator区别
<br />public interface IEnumerable<br />{<br /> IEnumerator GetEnumerator();<br />}<br /> <br />public interface IEnumerator<br />{<br /> bool MoveNext();<br /> void Reset();<br /> <br /> Object Current { get; }<br />}<br原创 2011-02-28 21:53:00 · 501 阅读 · 0 评论 -
Var关键字的用法
var关键字是C# 3.0开始新增的特性,称为推断类型 .可以赋予局部变量推断“类型”,var 不是显式类型。var 关键字指示编译器根据初始化语句右侧的表达式推断变量的类型。推断类型可以是内置类型、匿名类型、用户定义类型、.NET Framework 类库中定义的类型或任何表达式。==================上面的资料有点抽象不好理解.示例:原来我们定义变量,是要这样:数据类型 变量名 = 值;如:int a = 1;string b = "2"原创 2011-02-28 21:14:00 · 870 阅读 · 0 评论 -
C#检查端口是否被占用
<br />--检查端口是否被占用<br />Process p = new Process();<br />p.StartInfo = new ProcessStartInfo("netstat", "-a");<br />p.StartInfo.CreateNoWindow = true;<br />p.StartInfo.UseShellExecute = false;<br />p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;<br />p.S原创 2011-05-16 00:20:00 · 4695 阅读 · 1 评论 -
.net程序员必看30本经典书籍
<br />一.入门<br />1.《HTML与CSS入门经典(第7版) 》HTML入门 <br />点评:html语言的入门,由于html极其简单所以同类其他书也可代替,本书并非经典,本书摆在这里纯属占位!你可以用其他书代替。<br />2.《C#入门经典(第3版)》C#入门<br />点评:经典中的经典,个人认为是30本书里最重要的,虽然其他讲C#的好书也很多但大多1.0版的,很多在书店已经绝版,被《程序员》等机构评选为2006年最受读者喜爱的十大IT图书之一。<br />3.《精通SQL-原创 2011-05-25 09:03:00 · 8467 阅读 · 0 评论 -
我看微软.NET各子技术领域之应用前景
从2002年发布.NET 1.0,历经8年发展,.NET发展到了4.0,已经成为一个庞大而复杂的软件开发与运行平台,其架构日益复杂,其应用领域也在不断地扩展,包容了“一堆”的子技术领域。在.NET 4.0即将发布之际,回顾一下已发布的各项.NET技术,看看哪些技术用得很火,哪些被打入冷宫,再猜猜.NET 4.0中可能会有哪些技术会得到“青睐”,是件有意思的事。1 桌面应用程序开发技术( W转载 2012-02-26 16:57:48 · 548 阅读 · 0 评论 -
C#ADO.NET数据操作汇总
C#ADO.NET操作数据代码汇总一.用SqlConnection连接SQL Server1..加入命名空间using System.Data.SqlClient;2.连接数据库SqlConnection myConnection = new SqlConnection();myConnection.ConnectionString = "user id=sa;passwo转载 2012-02-28 10:59:42 · 563 阅读 · 0 评论 -
Winform控件使用文章整理
对C# WinForm开发系列收集的控件使用方面进行整理, 加入了一些文章, 不断补充充实, 完善这方面.基础 - 常用控件 C# WinForm开发系列 - CheckBox/Button/Label/ProgressBarWinForm下CheckedListBox的数据绑定Winform 下无闪烁走马灯效果实现c#,winform,progressbar转载 2012-02-28 17:24:19 · 790 阅读 · 0 评论 -
委托、事件与匿名方法
Delegates, Events, and Anonymous Methods委托、事件与匿名方法译者注:委托、事件和匿名方法等在C#编程中有广泛运用,也有很多资料和书籍对它们做过大量介绍,但在我接触的人群中仍有很多人对它们还不甚了解,甚至惧怕。我希望这篇博文能够把这些东西说清讲透,也希望有此需要的园友在阅读之后能够获得对它们的深刻理解,并在今后的编程生涯中熟练地运用它们。还希望转载 2013-08-08 09:50:55 · 1076 阅读 · 0 评论 -
C#方法
方法与参数修饰符方法可以有参数,也可以有返回值。方法可以在类或结构范围内实现(也可以在接口中定义命名),可以被各种修饰符(public、virtual、internal、new等)修饰以限定方法的行为。方法的基本格式为:修饰符 返回值 方法名(参数){...}C#参数修饰符C#有一些控制参数是如何传入方法体中的关键字。即C#参数修饰符:(无) :如果转载 2013-08-08 10:19:03 · 644 阅读 · 0 评论