B - .NET/C#
文章平均质量分 54
burningcpu
这个作者很懒,什么都没留下…
展开
-
.net多线程总结
.Net提供了许多多线程编程工具,可能是因为太多了,所以掌握起来总是有一些头疼,我在这里讲讲我总结的一些多线程编程的经验,希望对大家有帮助不需要传递参数,也不需要返回参数我们知道启动一个线程最直观的办法是使用Thread类,具体步骤如下ThreadStart threadStart=new ThreadStart(Calculate);Thread thread=new Th原创 2007-12-21 22:02:00 · 1261 阅读 · 0 评论 -
Asp.net2.0 Ajax 的UpdatePanel
为了实现局部刷新,UpdatePanel主要是为局部刷新而设计的,实现起来非常简单,不需要增加任何代码,只要把需要更新的局部控件都包含在UpdatePanel中即可,比如说响应事件是一个Button Click,那么有2种方式实现局部刷新,一是直接把Button也包含在UpdatePanel中,二是设置这个UpdatePanel的trigger属性,指定ControlID和EventNam原创 2007-07-16 13:42:00 · 717 阅读 · 0 评论 -
使用Ajax固定一个消息框
有特殊需求,需要固定某个消息框,无论向下滚,如何操作IE中的数据,这个消息框都保持原样,使用AlwaysVisibleControlExtender即可实现,只需要设置关联属性,已经消息框位于IE的位置就可以知道。 关键代码:ajaxToolkit:AlwaysVisibleControlExtender ID="AlwaysVisibleControlExtender原创 2007-07-17 13:31:00 · 585 阅读 · 0 评论 -
使用Ajax实现换肤功能
网站换肤是经常要用到的一个功能,但是传统的方式似乎有点瑕疵,本文实现的Ajax换肤有点类似MSNSpace中的用户体验。 功能:点击linkbutton, 在网页中央弹出一个radio单选框,同时背景变成灰色,选择这个单选框的选项,实现换肤功能。 这主要是ModalPopupExtender控件提供的功能,控件设置如下:ajaxToolkit:ModalPopupExt原创 2007-07-17 12:10:00 · 678 阅读 · 0 评论 -
关于XML解析的几个实用方法
1 获取XML文件的路径protected static String ServerRoot() ...{ return HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath).TrimEnd(/); }2 将XML中的所有节点用一定规则将所有的节原创 2007-07-12 18:06:00 · 518 阅读 · 0 评论 -
在DataList实现RadioButton单选的解决方案
最近在做一个动态生成电子报页面设计和编码工作,需求是这样的:选择一个样式,这个样式的缩略图和一个RadioButton绑定在DataList中,另外还有一个报头横幅和一个RadioButton绑定在另一个DataList中,需要实现单选功能。ps: 本文顺便讨论DataGrid中RadioButton的单选功能的实现。 方案大致可以分为2种,一是使用JavaScript脚本从原创 2007-04-11 22:22:00 · 2073 阅读 · 1 评论 -
重写方法和隐藏方法的区别
大家都知道new操作符可以用于实例化对象,还可以在子类中隐藏父类中的方法。如果实例化一个子类,不直接实例化父类的对象,让父类的对象的引用直接指向子类的对象,那么父类对象调用这个隐藏方法时候,还是在调用自己的这个方法,而没有调用子类中的这个方法,但是如果在子类中重写这个方法的话,当然父类对象要调用子类的方法,而不是自己的这个方法,因为已经被重写了,已经失去了功能了。以下是代码实原创 2007-03-13 20:43:00 · 709 阅读 · 0 评论 -
asp.net验证模式
Asp.net中有2种身份验证的方法。一种是基于Windows验证,一种是基于Form验证。主要体现在Web.config文件中的设置。 如果采用windows验证,可以不用登陆就可以直接访问站内网页,因为这种方式将用户身份验证的工作交给IIS服务器和Window操作系统去处理,网站开发人员就不需要去考虑具体的验证过程。只要客户机加入了服务器域内。这种方式比较适合企业内部网中的应原创 2007-01-20 18:31:00 · 932 阅读 · 0 评论 -
Visual studio.net快捷键
调试快捷键F6: 生成解决方案Ctrl+F6: 生成当前项目F7: 查看代码Shift+F7: 查看窗体设计器F5: 启动调试Ctrl+F5: 开始执行(不调试)Shift+F5: 停止调试Ctrl+Shift+F5: 重启调试F9: 切换断点Ctrl+F9: 启用/停止断点Ctrl+Shift+F9: 删除全部断点F10: 逐过程Ctrl+F10: 运行到光标处F11: 逐语句编辑转载 2007-01-21 19:30:00 · 579 阅读 · 0 评论 -
DataList绑定多维数组的问题和解决方案
如果DataList的数据源是一个二维数组,怎么绑定?是否具有可行性呢?是重写方法还是有别的方法?希望看到的朋友给我留言。 本文主要说一下一个DataList的数据源是二维数组的绑定的另一种解决方案。 问题是这样的:我需要把xml数据中的2个节点数据(图片途径和图片名称)读出来,一般这个问题的解决办法都是先把整个数据读出来,读到一个一维数组,然后在拆分成几个一维数组,原创 2007-04-17 17:47:00 · 1112 阅读 · 2 评论 -
ArrayList中剔除重复项的换位实现
由于每remove一个元素之后都会使count数变化,这样就不能限定循环次数,造成数组越界。所以只能是换一种方法了。 问题是这样的:DataTable中有一列记录,有很多重复项,现在要把重复的剔除,插入到ArrayList对象中,这里bool变量就起到作用了。 代码是这样的: //构造ArrayList temp for (int i = 0; i原创 2007-05-25 12:56:00 · 1032 阅读 · 0 评论 -
动态生成HTML的解决方案
最近在做的项目中有一部分需要实现动态生成HTML,下面介绍一下它的解决方案。 1, 需要一个模板,将HTML元素都预先写入模板,动态部分是用变量代替,动态部分比如CSS路径,内容,标题等等。这个变量应该尽量复杂,以免和HTML关键字或则其他元素相同。我们要做的就是在代码中使用内容数组替换那些在模板中的变量。 2,使用StreamReader对象读取模板,读到一个Stri原创 2007-05-22 17:04:00 · 3349 阅读 · 0 评论 -
Remoting学习之一:对象的序列化
Remoting的实质就是远程对象的调用,就是调用另一台机器的某个对象,那么第一步当然就是将对象序列化,这样才能在网络中传输。那么肯定就有2种方式来传递,一是将对象序列化为二进制形式,通过TCP协议来传输;二是序列化为XML格式,通过http/soap来传输。这是学习Remoting的必备条件。 序列化为二进制: // create a file s原创 2008-01-22 21:56:00 · 1691 阅读 · 0 评论 -
静态类做缓存和全局对象
静态类能做的事情很特别,很多时候它能帮大忙。 由于静态类不能包含this指针,因此不需要本类去实例化,可以独立对象产生,由于静态类实例化没有任何意义,所以我们最好加一个private构造函数来避免静态类的实例化。 由于静态类的生存周期是程序执行时到程序结束,所以我们可以在这个类中包含一个对象,用static修饰,那么我们可以在其他工程域中使用这个对象,因为它是公原创 2008-01-23 18:13:00 · 2428 阅读 · 0 评论 -
如何返回一个对象数组
数据库有一个Person表,那么,我们做一个person实体。在webservice里面写一个发布方法,发布一个查询方法,可能查询结果有很多个Person,所以应该返回一个数组,问题在于,数组不定长,所以应该使用ArrayList做一下中转,之后调用toArray()方法变成Person[],即return (Person[])result.toArray(typeof(person)).原创 2007-10-03 23:31:00 · 1662 阅读 · 1 评论 -
绑定数据集的同时增加一项在Dropdownlist或者ListBox中
把具有id和Name2列的数据表读入DataSet,然后把ds邦定到DropdownList中,包括Value和Text,有三中方法可以实现。 1 使用Sql语句构造DataSet string sql = "select 请选择,-1 union select name,id from table"; 或者select 请选择 as name,原创 2007-09-27 14:31:00 · 924 阅读 · 0 评论 -
C#2.0--语言规范
语言规范:一.数据类型: 1.值类型:1.1:整数类型:类型基类位数说明SbyteSystem.Sbyte1-128-127ByteSystem.Byte10-255ShotSystem.转载 2007-06-05 16:27:00 · 524 阅读 · 0 评论 -
C#-委托与事件
一、 什么是委托:大家先看一个示例:下面类中是两个函数,分别实现的二倍,和平方的功能class MathsOperations{public static double MultiplyByTwo(double value){return value*2;}public static double Square(double value){return转载 2007-06-05 16:30:00 · 702 阅读 · 0 评论 -
C#面向对象概念
C#面向对象概念 一、面向对象的概念:以接近现实的处理手法来处理项目中的设计。一个例子:请描述一下森林中一只狮子捕食一只兔子的场景。 用结构化编程实现用面向对象方式实现strut Lion{int lId;string name;}strut Rubbit{int 1Id;string nam转载 2007-06-05 16:28:00 · 1146 阅读 · 0 评论 -
Ajax in Asp.net
Ajax是Asynchronous JavaScript and XML的缩写,是目前web开发领域中非常热门的一项技术,它的出现为web开发中客户端脚本和服务器语言之间搭起了一座桥梁。通俗的说,Ajax就是同过javascript在客户段调用服务端的方法。 Ajax其实并不是什么新技术,他是几项技术的融合,他们按照一定的方式共同协作。这些技术包括 使用XHT原创 2007-01-15 11:05:00 · 555 阅读 · 0 评论 -
Asp.net状态管理
Web应用的特点是服务方不保持状态,如果不采用某种方法,当一次Web请求完成后,服务方的对应状态就会消失。也就是说每刷新一次页面或者相应一个事件,在服务方都要重新生成一个实例。响应完成后,这个实例也随之消失了。 在.net中,有2中方式来保存状态,包括客户端和服务端。 一 客户端 ViewState属性 将服务端控件的viewState属原创 2007-01-11 16:26:00 · 576 阅读 · 0 评论 -
实践一下ArrayList
以下是ArrayList里常用的方法,还有一个枚举哦。 项目都是这样一步一步累积起来的,多写写,赫赫。 using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace TestArayListClass...{ class Program原创 2006-12-24 22:53:00 · 609 阅读 · 0 评论 -
XAML and .NET Workflow
前天在微软中心接触到了.net3.0,增加了很多新的技术,在微软的体系是新技术,但是在整个软件领域,算不上什么新啦,但是微软总是能把别的体系中的技术转移到自己的平台,并且很有自己的特色,操作简便性是最大的特点,开发人员可以充满趣味的设计or编程。 关于XAML,在.net3.0中的一种新的界面语言,用XAML做出来的界面非常酷,新的技术必定会带来应用软件需求的变化,凭借.net3.0增原创 2006-12-07 22:42:00 · 1263 阅读 · 2 评论 -
连接数据库的2种方式
对于数据库操作来说,首先第一步就是建立连接,然后才是一些具体的操作。必须在操作完后释放资源,对于连接数据库有2种方式,对于第一种方式我们用的是最多的,而对于第二种方式似乎很少用到,甚至根本没有听说过。 One method:try...catch...finally... try { //Open the connection conn.Open(原创 2006-12-07 20:59:00 · 619 阅读 · 0 评论 -
参数数组
C#引进参数数组,主要是适应如下情况:假如方法需要获取数量可变且类型有可能不同的参数,如果一直使用重载,那可能要写很多重载版本,但是如果参数经常变,变到我们无法控制,那我们只有用参数数组的方式来解决了。 参数数组有2种类型,一种是只容纳值类型的数组,params typt[]; 另一种是可以容纳所有类型,params object[]. One:params type[原创 2006-12-07 22:58:00 · 1291 阅读 · 1 评论 -
装箱和拆箱
在讨论装箱和拆箱之前,首先要回忆一下计算机的内存组织。操作系统和CLR一般将容纳数据的内存划分为2个独立的区域,每个区域都采取不同的方式来进行管理,这2个区域就是堆栈和堆。变量一般存储在堆栈中,对象存储在堆中。 值和引用的概念。如果将一个变量拷贝给另一个变量,这2个变量是没有联系的,修改一个不会影响另一个。但是引用就不同了,引用或者说句柄,是在堆栈中开辟一个空间来指向位于堆中的对原创 2006-12-07 22:56:00 · 661 阅读 · 0 评论 -
页面传值的2种方法
web开发中经常涉及到页面传值的问题,目前我实践过的有2种方法。 一 通过session传: WebForm1.aspx Session["str"] = "hello world."; Response.Redirect("WebForm2.aspx"); WebForm2.asp this.label.Text = Session["str原创 2006-12-07 22:53:00 · 614 阅读 · 0 评论 -
页面返回的3方法
一般的页面返回的方式有3种,客户端返回,服务器端返回(2种)。假如有2个页面 page1.aspx和page2.aspx.在page1.aspx中Response.Redirect("page2.aspx?reurl=page1.aspx"); 一 客户端返回:在页面加载中初始化button1,为button1添加属性,代码如下:this.Button1.Attributes.Add("原创 2006-12-07 22:52:00 · 861 阅读 · 0 评论 -
.NET类库解脱C++人的苦恼
C++开发人员一直在使用类似 GetDIBits(),RegisterWndClassEx(),IsEqualID()这种恶心的API函数,甚至有些还要传递Windows句柄函数;C++开发人员总是很容易访问整个windows API,而C#和JAVA 开发人员只能访问其语言所能访问的基本操作系统功能。.net基类库新增内容就是把visual basic和java库的易用性和我indows原创 2006-12-07 22:44:00 · 787 阅读 · 0 评论 -
动态菜单树实现方式
技术需求。需要一个菜单树,它能实现在IE中添加节点以及子节点,每刷新一次菜单都要从数据库中读取节点内容,每个节点内容都要有相应的链接。 开始一直在考虑用javascript和xml自己写,也就是炒作的比较厉害的AJAX。但是谈何容易。根据.net面向控件的特点,首先要想得是在网上找有这个功能的控件,微软的treeview是比较好的了。要用的话当然也需要写一些代码,大体是把节点读取原创 2006-12-07 22:46:00 · 1250 阅读 · 0 评论 -
table循环显示记录
// Total number of rows int rowCnt; // Current row count int rowCtr; // Total number of cells per row (columns) int cellCtr; // Current cell counter int cellCnt; rowCnt = int.Parse原创 2006-12-07 22:48:00 · 785 阅读 · 0 评论 -
Reverse Ajax
最近接触到了Reverse Ajax,和Ajax相反的技术。Ajax是从客户端用Javascript通过XML去操作服务器,而Reverse Ajax,是由服务器主动去操作浏览器,通过java代码去调用Javascript,反映到浏览器上。我在想,Reverse Ajax似乎已经打破了Request/Reponse模式了,完全不需要用户参与,没有任何触发事件。不知道有没有这种可行性,据说已原创 2006-12-07 23:00:00 · 845 阅读 · 0 评论 -
C#中数组复制的4种方法
今天旁边的同事MM叫我调了一段程序,她想复制一个数组,int[] pins = {9,3,4,9};int [] alias = pins;这里出了错误,也是错误的根源,以上代码并没有出错,但是根本不是复制,因为pins和alias都是引用,存在于堆栈中,而数据9,3,4,3是一个int对象存在于堆中,int [] alias = pins;只不过是创建另一个引用,alias和pins同时指向{原创 2006-12-07 22:58:00 · 13727 阅读 · 2 评论 -
C#中的结构和类
类是在堆中创建的,某些时候,类中只包含极少的数据,因为管理堆造成的开销显得不合算。 所以C#中引入结构的概念是为了提高性能,提供给轻量级的“对象”,它是一个值类型,位于堆栈上;在语法上,结构和类是相似的。但是还是有很多不同的地方。主要体现在以下两个方面。 不能象类一样,给结构声明一个无参数的默认构造函数。必须给结构的每一个变量显示的声明构造函数。 stru原创 2006-12-07 22:57:00 · 698 阅读 · 0 评论 -
使用Enter键代替Tab键的功能
function keyDown(){var keycode=event.keyCode;var keyChar=String.fromCharCode(keycode);if(keycode==13)event.keyCode=9;};document.onkeydown=keyDown;原创 2006-12-07 22:51:00 · 746 阅读 · 0 评论 -
datagrid循环打勾
function allChecked() { if(document.getElementById("allCheckBox3").checked == true) { //开始循环打勾 var count = document.getElementsByTagName("input").length var temp; for(var i = 0原创 2006-12-07 22:50:00 · 746 阅读 · 0 评论