21
5

委托用法,C#源代码

0
归档:2009年5月分类:C#和.NET

1、委托的概念
委托是C#一个非常重要的概念,也是很有用的,因为委托和事件结合起来使用可以完成很多功能(委托是事件的基础),而且可以通过委托来实现函数的匿名方法(通过将委托与命名方法或匿名方法关联,可以实例化委托)。
C#的委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。
2、委托的用法
委托类型声明的格式如下:
public delegate void TestDelegate(string message);delegate 关键字用于声明一个引用类型,该引用类型可用于封装命名方法或匿名方法。
为了与命名方法一起使用,委托必须用具有可接受签名的方法进行实例化。有关方法签名中允许的方差度的更多信息,请参见委托中的协变和逆变。为了与匿名方法一起使用,委托和与之关联的代码必须一起声明。
3、实现代码
下面用C#代码来说明如何使用委托(参考自微软msdn):

using System;
// Declare delegate -- defines required signature:
delegate void SampleDelegate(string message);
class MainClass
{
// Regular method that matches signature:
static void SampleDelegateMethod(string message)
{
Console.WriteLine(message);
}
static void Main()
{
// Instantiate delegate with named method:
SampleDelegate d1 = SampleDelegateMethod;
// Instantiate delegate with anonymous method:
SampleDelegate d2 = delegate(string message)
{
Console.WriteLine(message);
};
// Invoke delegate d1:
d1("Hello");
// Invoke delegate d2:
d2(" World");
}
}
21
5

C#常用函数列表(二)

0
归档:2009年5月分类:C#和.NET

11、string str=Request.QueryString["变量"];
用超链接传送变量。如在任一页中建超链接href="Edit.aspx?fbid="23"点击.在Edit.aspx页中取值:String str=Request.QueryString["fdid"];
12、DOC对象.CreateElement("新建节点名");
创建XML文档新节点
13、父节点.AppendChild(子节点);
将新建的子节点加到XML文档父节点下
14、 父节点.RemoveChild(节点);
删除节点
15、Response
Response.Write("字串");Response.Write(变量);向页面输出。Response.Redirect("URL地址");
跳转到URL指定的页面
16、char.IsWhiteSpce(字串变量,位数)--逻辑型
查指定位置是否空字符;如:string str="中国人"Response.Write(char.IsWhiteSpace(str,2));//结果为:True, 第一个字符是0位,2是第三个字符。
17、char.IsPunctuation('字符') --逻辑型
查字符是否是标点符号如:Response.Write(char.IsPunctuation('A')); //返回:False
18、(int)'字符'
把字符转为数字,查代码点,注意是单引号。如:Response.Write((int)'中'); //结果为中字的代码:20013
19、(char)代码
把数字转为字符,查代码代表的字符。如:Response.Write((char)22269); //返回“国”字。
20、 Trim()
清除字串前后空格

21
5

c# params,params用法,代码

0
归档:2009年5月分类:C#和.NET

在C#语言里,params 关键字可以指定在参数数目可变处采用参数的方法参数。
把数组作为参数的一个关键字,目的是做出如 a(parm1,parm2.parm3,....parmn) ,这样调用方式的函数,也就是同一种类型的不定个数参数列表,如果声明时没用parms关键字就如下调用,实际上是一样的
a(new type[]{parm1,parm2.parm3,....parmn});
在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字,下面是具体示例代码:
using System;
public class MyClass
{
public static void UseParams(params int[] list)
{
for (int i = 0 ; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
Console.WriteLine();
}
public static void UseParams2(params object[] list)
{
for (int i = 0 ; i < list.Length; i++)
{
Console.WriteLine(list[i]);
}
Console.WriteLine();
}
static void Main()
{
UseParams(1, 2, 3);
UseParams2(1, 'a', "test");
// An array of objects can also be passed, as long as
// the array type matches the method being called.
int[] myarray = new int[3] {10,11,12};
UseParams(myarray);
}
}

21
5

C#最常用函数

0
归档:2009年5月分类: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 取当前日
int 日=currentTime.Day;
1.5 取当前时
int 时=currentTime.Hour;
1.6 取当前分
int 分=currentTime.Minute;
1.7 取当前秒
int 秒=currentTime.Second;
1.8 取当前毫秒
int 毫秒=currentTime.Millisecond;
(变量可用中文)
2、Int32.Parse(变量) Int32.Parse("常量")
字符型转换 转为32位数字型
3、 变量.ToString()
字符型转换 转为字符串
12345.ToString("n"); //生成 12,345.00
12345.ToString("C"); //生成 ¥12,345.00
12345.ToString("e"); //生成 1.234500e+004
12345.ToString("f4"); //生成 12345.0000
12345.ToString("x"); //生成 3039 (16进制)
12345.ToString("p"); //生成 1,234,500.00%
4、变量.Length 数字型
取字串长度:
如: string str="中国"
int Len = str.Length ; //Len是自定义变量, str是求测的字串的变量名
5、System.Text.Encoding.Default.GetBytes(变量)
字码转换 转为比特码
如:byte[] bytStr = System.Text.Encoding.Default.GetBytes(str);
然后可得到比特长度:
len = bytStr.Length;
6、System.Text.StringBuilder("")
字符串相加,(+号是不是也一样?)
如:System.Text.StringBuilder sb = new System.Text.StringBuilder("");
sb.Append("中华");
sb.Append("人民");
sb.Append("共和国");
7、变量.Substring(参数1,参数2);
截取字串的一部分,参数1为左起始位数,参数2为截取几位。
如:string s1 = str.Substring(0,2);
8、String user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
取远程用户IP地址
9、穿过代理服务器取远程用户真实IP地址:
if(Request.ServerVariables["HTTP_VIA"]!=null){
string user_IP=Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}else{
string user_IP=Request.ServerVariables["REMOTE_ADDR"].ToString();
}
10、 Session["变量"];
存取Session值;
如,赋值: Session["username"]="小布什"
取值: Object objName=Session["username"];
String strName=objName.ToString();
清空: Session.RemoveAll();

21
5

深入理解什么是委托
委托就是函数指针,先定义了一个委托,然后将它的实例指向某个特定的方法(函数),通过这个委托的实例就可以调用其方法。
1、要想使得委托可以工作,必须有定义好的方法(函数),这是一种方式;
2、可以通过匿名方法来作为委托参数的一个代码块。
匿名方法其实就是在实例化委托的时候给委托定义了代码块,可以实现某些功能,再调用委托的时候就可以直接使用这些代码块了。
注意:匿名方法不能跳转到外部,外部也不能跳转到匿名方法;匿名方法内部不能访问安全代码,也不能在外部使用ref和out参数。
深入理解集合
在C#中应该能够灵活地使用数组列表、字典和集合,这样才可以获取程序的最佳性能。最主要的有下面这些:集合;数组列表;栈;队列;有序列表;字典。集合大都可以通过语句来实现访问:
forreach(string item in Items)
{
writeline(item);
}
1、数组列表(ArrayList)
常用的方法Add,Insert,RemoveAt,AddRange。
2、Stack类
适合于处理应用程序使用完后就删除的临时数据项,先进后出。
3、Queue类
和Stack差不多,只不过是先进先出。
4、SortedList类
在使用SortedList类的时候,每一项都会指定一个用于引用改项的标识键。可以通过GetKeyList()和GetValueList()来获取键和值。
5、字典和散列
字典和散列总是会跟HashTable联系起来。
深入理解泛型
引入泛型最大的好处就是避免大量的装箱和拆箱操作,而且能够简化大量代码。

21
5

JQuery下载,最新版本持续更新

0
归档:2009年5月分类:前端技术

JQuery是一个非常酷的JavaScript框架,极大地简化了JavaScript的操作,本人这段时间开始学习它,并且用它,现在把它当成了一个类似.NET框架的开发类库了,每一个项目我都需要引用到这个框架。
这篇日志我提供JQuery下载地址,并且持续更新,希望给各位带来方便:
1、JQuery下载地址(1.3.2版本——最新发布版本)
精简版本: http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.min.js
完全版本:http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2.js
VS2008职能提示版本:http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.2-vsdoc2.js
2、JQuery下载地址(1.3版本)
精简版本: http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.min.js
完全版本:http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3.js
VS2008职能提示版本:http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.3-vsdoc.js
3、JQuery下载地址(1.2.6版本——这是现在用得最多的版本)
精简版本: http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.min.js
打包版本:http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.pack.js
完全版本:http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6.js
VS2008职能提示版本:http://code.google.com/p/jqueryjs/downloads/detail?name=jquery-1.2.6-vsdoc.js

21
5

JQuery页面加载顺序

0
归档:2009年5月分类:前端技术

JQuery页面加载顺序
JQuery在页面加载顺序方面提供了更好更合理的操作,在JavaScript中,window.onload事件下的代码是必须在所有页面元素都加载完成之后才执行(注意:包括了图片和文件等),可是有的时候我们希望hmtl代码加载完成之后(即DOM加载完成之后)就执行某些代码,在JQuery里有这样的函数:
$(document).ready(function(){
alert("hello");
});
上面的代码在Dom结构被浏览器解析之后就可以执行了。当然也有其他人使用JavaScript来编写一些函数可以实现这样的功能,只不过JQuery更好。另外,使用这样的函数还有一个好处,就是可以基于同一个页面在加载结束之后执行多个脚本函数。

21
5

JavaScript框架Jquery介绍

0
归档:2009年5月分类:前端技术

想必很多人都知道JQuery框架了,现在有很多JavaScript的框架,但是真正非常优秀的框架还属JQuery,从微软在VS2008中专门为其提供只能提示这一侧面可以看得出来它的分量。 jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的Jörn Zaefferer,罗马尼亚的Stefan Petre等等。  jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。
jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
Jquery是继prototype之后又一个优秀的Javascrīpt框架。对prototype我使用不多,简单了解过。但使用上jquery之后,马上被她的优雅吸引住了。有人使用这样的一比喻来比较prototype和jquery:prototype就像Java,而jquery就像ruby.实际上我比较喜欢java(少接触Ruby 罢了)但是jquery的简单的实用的确有相当大的吸引力啊!在项目里我把jquery作为自己唯一的框架类包。使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。
下面是最为简单的JQuery的应用:
告别代码重复的时代
还记得$()这个东西吧?prototype还是DWR都使用了这个函数代替document.getElementById()。没错,jquery也跟风了。为达到document.getElementById()的目的,jquery是这样写的:var someElement = $("#myId").
jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。

公告栏

欢迎大家来到我的博客,我是dodoro,希望我的博客能给你带来帮助。