C#常用函数列表(二)

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() 清除字串前后空格

May 21, 2009

C#最常用函数

以下是我们在开发过程中最为常用的一些函数: 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();

May 21, 2009

委托用法,C#源代码

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"); } }

May 21, 2009

MediatR是什么

简单了解下这个开源项目MediatR(作者Jimmy Bogard,也是开源项目AutoMapper的创建者: Simple mediator implementation in .NET. In-process messaging with no dependencies. Supports request/response, commands, queries, notifications and events, synchronous and async with intelligent dispatching via C# generic variance. .NET中的简单中介者模式实现,一种进程内消息传递机制(无其他外部依赖)。 支持以同步或异步的形式进行请求/响应,命令,查询,通知和事件的消息传递,并通过C#泛型支持消息的智能调度。 如上所述,其核心是一个中介者模式的.NET实现,其目的是消息发送和消息处理的解耦。它支持以单播和多播形式使用同步或异步的模式来发布消息,创建和侦听事件。 中介者模式既然是对中介者模式的一种实现,那么我们就有必要简要介绍下中介者这个设计模式,以便后续展开。 中介者模式类图 中介者模式:用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。 看上面的官方定义可能还是有点绕,那么下面这张图应该能帮助你对中介者模式有个直观了解。 使用中介模式,对象之间的交互将封装在中介对象中。对象不再直接相互交互(解耦),而是通过中介进行交互。这减少了对象之间的依赖性,从而减少了耦合。 那其优缺点也在图中很容易看出: 优点:中介者模式的优点就是减少类间的依赖,把原有的一对多的依赖变成了一对一的依赖,同事类只依赖中介者,减少了依赖,当然同时也降低了类间的耦合 缺点:中介者模式的缺点就是中介者会膨胀得很大,而且逻辑复杂,原本N个对象直接的相互依赖关系转换为中介者和同事类的依赖关系,同事类越多,中介者的逻辑就越复杂。 Hello MeidatR 在开始之前,我们先来了解下其基本用法。 单播消息传输 单播消息传输,也就是一对一的消息传递,一个消息对应一个消息处理。其通过IRequest来抽象单播消息,用IRequestHandler进行消息处理。 //构建 消息请求 public class Ping : IRequest { } //构建 消息处理 public class PingHandler : IRequestHandler<Ping, string> { public Task Handle(Ping request, CancellationToken cancellationToken) { return Task.FromResult(“Pong”); } } //发送 请求 var response = await mediator.Send(new Ping()); Debug.WriteLine(response); // “Pong” ...