- 博客(39)
- 资源 (3)
- 收藏
- 关注
原创 让一个字符重复指定次数,让一个字符或字符串占指定宽度显示
利用构造方法,可以指定一个字符重复的次数string s = new String('A', 4);但这种方法不灵活。可以利用字符串填充函数c.ToString().PadLeft(4,'B'),指定字符宽度为4,左面留空格,空格部分用B来填充当然也可以自己写个函数代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;name
2010-09-22 00:03:00 2253
原创 CSS样式选择器的总结
<br /> 所有HTML语言中的标记都是通过不同的CSS选择器进行控制的。用户只需要通过选择器对不同的HTML标签进行控制,并赋予各种样式声明,以实现各种效果。<br />一、常见的几种选择器<br />1、标记选择器<br /> 一个HTML页面有很多不同的标记组成,声明哪些标记采用哪种CSS样式,即标记选择器。一旦声明那么页面中所有的该标记都会相应产生变化。例:<br /><html><br /><head><br /><title>标记选择器</title><br /
2010-09-15 22:43:00 852
转载 C#和VB.net语法对比图
<br />C#和VB.net语法对比图<br />注释Comments<br />VB.NET<br /> <br />'Single line only<br />REM Single line only<br /> <br />C#<br />// Single line<br />/* Multiple<br />line */<br />/// XML comments on single line/** XML comments on multiple lines */ <br />数据类型Da
2010-09-11 23:30:00 782
原创 C#分部类和分部方法的使用
<br /> 将同一个类编写在多个文件中,类的各个文件名不同,类名相同,类名前加partial关键字,这种类型叫分部类。<br /> 在分部类中可以建立分部方法,方法名前加关键字partial,分部方法只能将方法分成两部分,即声明部分和实现部分分别位于不同的分部类里。分部方法可以使静态犯法,但必须是隐式的私有方法,并且无返回值的方法,因为分部方法时私有方法,所以无法使用virtual修饰符,即不能成为虚方法;分部方法可以有ref参数,但不能有out参数;不允许将委托转换为分部方法
2010-09-10 20:30:00 3672
原创 C#匿名类型的的实际应用
<br /> 通过var和对象构造器,声明一个没有名称(其名称是由编译器分配的)的类,同时创建并初始化成员。如:var pc1 = new {cpu="Intel",memory="AMD"};<br /> 如果程序仅仅需要临时一组数据,则用匿名类型比较合适,匿名类型编译后,仍然是一个普通的密封类,不可派生其他类,只是名称是由编译器分配的,利用对象构造器初始化的成员,具有只读属性。匿名内部类同样有构造函数用于初始化成员,只是创建时不需要显式调用。如下列:<br />using S
2010-09-10 19:37:00 2293
原创 使用对象构造器初始化对象
<br /> 使用对象构造器,可以使初始化对象像初始化数组一样简单,即在构造函数后直接添加多个初始化语句代码,并用逗号分隔,整体用{}括起来,定义形式如下:<br /> 类型声明 实例名称 = new 类型名称() {初始化语句1,初始化语句2};<br />如果相同成员的不同初始化语句,则以最右面的语句为准。初始化的顺序是先执行构造函数的语句,然后执行对象构造器中的语句。如下例:<br />using System;using System.Collections.Gene
2010-09-10 18:56:00 701
原创 C#扩展方法的应用
C#扩展方法用于扩展指定类型的功能。扩展方法可以单独定义在外部程序集中。本例中首先建立一个外部类项目ExtMethodDefine,定义一个类Tool,而且此类必须是静态的非泛型的。代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ExtMethodDefine{ public static class Tool {
2010-09-10 17:47:00 638 1
转载 C#.Net中String与string的区别
MSDN中对string的说明:string is an alias for String in the .NET Framework。string是String的别名而已,string是c#中的类,String是Framework的类,C# string 映射为 Framework的 String。如果用string,编译器会把它编译成String,所以如果直接用String就可以让编译器少做一点点工作。 如果使用C#,建议使用string,比较符合规范 。 string始终
2010-09-10 17:04:00 746
转载 string 和stringbuilder的区别
String在任何语言中,都有它的特殊性,在.NET中也是如此。它属于基本数据类型,也是基本数据类型中唯一的引用类型。字符串可以声明为常量,但是它却放在了堆中。一:不可改变对象 在.NET中String是不可改变对象,一旦创建了一个String对象并为它赋值,它就不可能再改变,也就是你不可能改变一个字符串的值。这句话初听起来似乎有些不可思议,大家也许马上会想到字符串的连接操作,我们不也可以改变字符串吗?看下面这段代码: using System; namespace
2010-09-10 13:08:00 565
原创 C#的?修饰符,和??修饰符的用法
C#提供一个"?"后缀符,"?"不能加在引用类型后,但可以加在值类型或值类型数组后后。如:private int? x;private double?[] c = new double?[] { 3.2, null, null, 6.4, 1.28, 2.56 }; 加上"?"后缀符后,则表示此值类型也可以有空值null。增加了数据范围,可用于变量存储值类型和null类型的情况,如:数据库数据可能为空值。 "?"后缀符其实是System.Nullable类型变量的
2010-09-10 12:23:00 526
原创 C#中利用var对局部变量的隐式类型声明
C#提供了var关键字,只能声明局部变量,而且必须对变量赋非null的初始值,由编译器根据初始值推测具体的数据类型。 这种方法类似JavaScript这样的弱类型编程语言的变量声明方法。而C#是强类型语言,即使使用了var关键字,同样没有质的变化,只是当编译器遇到var是,将根据初始值推测出相应的数据类型,如果在作用域里给同一变量赋予不同数据类型的新值则会产生编译错误,如下所示:var x=3;x=8.3; //给同一变量赋予不同数据类型的新值则会产生编译错误 下
2010-09-10 00:50:00 4126
原创 C#函数中无参数修饰符、out修饰符、params修饰符、ref修饰符的区别
无参数修饰符:表示按值传递out修饰符:表示按引用传递,传递前不需要赋初值,但在传入的方法内赋值,否则报错params修饰符:可将不确定个数的一组相同类型的数据作为参数传递,函数签名中只能有一个params修饰符,并且应为最后一个参数。ref修饰符:表示按引用传递,传递前必须赋初值,否则报错例:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace LxPara
2010-09-10 00:07:00 2037
原创 .NET结构和类的区别
1)、结构没有类的特性,不支持继承。但可以实现接口2)、结构无法声明无参的构造函数,但可以声明有参的构造函数3)、结构的实例成员不能直接赋初值,必须通过构造函数来赋值,但静态成员可以直接赋初值4)结构是值类型。实例化可以不用new,即使用new操作也不分配内存。结构体对象作参数传递给函数时,函数内的修改不会影响结构体实参的值例:using System;using System.Collections.Generic;using System.Linq;using System.Text;
2010-09-09 23:11:00 538
原创 说明简单工厂模式的作用
在软件系统中,经常面临“一系列相互依赖对象”的创建工作,为了绕过常规对象的创建方式(即用new创建),利用工厂模式,提供一种“封装机制”来减少功能调用程序和“多系列具体对象创建工作”的耦合性。 简单工厂模式,在工厂类中封装创建对象的实现部分。在应用接口的程序中广泛应用。如下例:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespac
2010-09-09 22:04:00 4926
原创 .Net面向对象程序设计
1、简述面向对象的设计思想面向对象的特质为封装、继承、多态、抽象等。用面向对象编写程序时,首先将复杂的项目抽象为多个互相协作的对象模型。然后描述对象的特征和行为(即类的属性和方法),完成不同的功能最后通过类的事例处理实际问题2、类和对象的区别类用于描述对象的特征状态和行为的模板,对象是类的一个实体。3、描述private、protected、internal和public修饰符的作用private设置类或类的成员的访问权限为所属类的内部protected设置类或类的成员的访问权限为所属类及子类的内部inte
2010-09-09 21:53:00 688
转载 DataGridView滚动慢的解决方法
当DataGridView达到一定大小的时候,拖动滚动条就会非常慢,出现让人难以忍受的闪动。即便只有100行,每行30列。解决方法是启用DataGridView的双缓冲。首先导入命名空间using System.Reflection; public static void DoubleBuffered(this DataGridView dgv, bool setting) { Type dgvType = dgv.GetType();
2010-09-09 17:40:00 4476 4
转载 DataTable使用技巧总结
在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结。 一、DataTable简介 (1)构造函数 DataTable() 不带参数初始化DataTable 类的新实例。 DataTable(string tableName) 用指定的表名初始化DataTable 类的新实例。
2010-09-09 17:14:00 755
转载 C#后期绑定操作Excel
后期绑定的好处是:对于不同版本的软件都能支持。如果机器A上安装的Office 2003,机器B上安装Office 2007,没问题,下面代码都能正常运行。但是如果采用前期绑定就不行了。关于“前期绑定和后期绑定”,“Excel专业开发”一书的3.3.3节(43页)说的非常清楚。private void Test(){ DataTable table = new DataTable(); table.Columns.Add("ID", System.Type.GetType("Syste
2010-09-09 14:52:00 1837
转载 C#重蹈覆辙?反射及元数据性能问题
在开始谈论性能问题之前,有必要首先理清几个基本点。我们谈C#,就是在谈.NET Framework(或者更准确一点是CLR,因为.NET Framework除了CLR还包括BCL);谈.NET Framework(CLR),也就是在谈C#。因为支撑C#语法之后的就是整个CLR的机制。因此,我说C#性能不好,和说CLR性能不好,说的是一个事情(就像说Java性能不好,就是说JVM性能不好一样)。我不希望在我下面说C#某个地方性能不好的时候,再有论者立即指出来“那不是C#的问题,那是CLR的问题,
2010-09-09 14:37:00 615
原创 通过晚期绑定读写属性Property和字段Field
晚期绑定读写属性Property和字段Field均可以使用晚期绑定对象的InvokeMember()方法实现,也可以使用所指定类型的Type对象反射实现。本例首先建立一个外部类项目Humen,并建立类Person,增加Name属性和_age字段,并建立一个主项目LateBindingOther并建立类LateBindingOther,添加外部引用Humen.dll文件,在LateBindingOther里使用了两种方法来读写属性Property和字段Field。在类Person里故意增加了命名空间,注意在L
2010-09-09 12:59:00 1243
原创 通过晚期绑定调用方法成员
晚(后)期绑定:若将一个变量声明为object,编译时不知道程序集是否存在,也无法确定该变量将引用哪种类型的对象,在程序中创建该程序集指定类型的实例,并调用其成员,这就是晚期绑定。在运行时确定对象的属性和方法能否使用该变量。对进程外部件而言,这意味着一次额外的跨进程方法调用,增加额外开销。 在调用外部的COM自动化组件时,如Office,如果通过这种方式调用,对于不同版本的Office,如果你调用的方法、属性都是存在的,那么可以适应不同版本的Office,但如果通过前期绑定,在项目引用中确定对象类型
2010-09-09 01:07:00 799
原创 动态加载外部程序集并用反射获取指定类型的信息
通过System.Reflection命名空间下的Assembly类可以动态加载外部程序集,其中Load()方法和LoadFrom()方法。Load()方法用于加载当前程序集位于相同目录下的外部程序集,需要提前添加外部程序集的引用。LoadFrom()方法可以加载其他目录中的程序集,需要书写完整目录。
2010-09-08 21:09:00 1331
原创 利用反射技术获取当前程序集指定类型的信息
利用反射获取当前程序集指定类型的信息,获取指定类型的信息,只需获取该类型的Type对象,然后调用其成员即可.
2010-09-08 12:17:00 1420
原创 使用反射技术获取指定类型中方法的完整信息
反射可以轻松获取指定类型中方法的完整信息,首先获取指定类型的Type对象,然后通过Type对象的GetMethods()方法,获取类型中方法的元数据信息。
2010-09-08 12:03:00 877
原创 下拉列表,单选与多选
对于下拉菜单selectedIndex属性返回选中的序号。如果要多选,则创建一个数组用来存放选中的项,遍历整个下拉菜单,如果选中则用push方法压入数组。
2010-09-06 23:23:00 1990
原创 控制文本框的字符个数,显示还可输入的字符数
1、onkeydown监控用户键盘输入并进行字符截取;2、onchange防止用户通过复制粘贴功能输入超过指定最大字符数的字符;3、onpropertychange针对IE(FF中无效),作用就是当用户通过复制粘贴功能来进行输入时,当粘贴完成的瞬间即进行字符截取,而不是像onchange那样需要等到焦点离开textarea控件时才进行字符截取(该属性主要为了用户体验上的效果,没有该属性已经可以真正完成限制字符输入个数的任务)。
2010-09-06 22:09:00 3490
转载 JavaScript中的preventDefault和 stopPropagation
preventDefault方法就是可以阻止它的默认行为的发生而发生其他的事情stopPropagation方法就是起到阻止js事件冒泡的作用
2010-09-06 17:11:00 583
源文件程序天下JAVASCRIPT实例自学手册
2012-05-05
ASP.NET开发技术大全源码
2010-08-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人