javascript的原型prototype与c#中扩展方法的相同之处

javascript:

//1.javascript中的函数原型
 String.prototype.jWrite = function () {
     document.write(this);
 }
        
 //调用
 "==abc==".jWrite(); //输出:==abc==
//不能这么调用
jWrite("==abc==");//提示jWrite 未定义

C#:

//2.c#中叫扩展方法,这么实现
public static class xxxxxxxx
{
    public static void Cwrite(this string str)//注意关键字this
    {
        System.Web.HttpContext.Current.Response.Write(str);
    }
}
        
//调用
"1111111111222222".Cwrite();//输出:1111111111222222
//也可以这么调用
Cwrite("1111111111222222");//输出:1111111111222222

注意:

js中函数名与系统函数名重名,系统函数将被覆盖。

c#需要在.net Framework3.0或以上版才支持。扩展方法名不能与系统方法重名。


好玩吧,当然它的用途不是为了好玩,它可以实现一些更复杂,更有用的功能,记下来当你需要的时候自然会想到。

类别:DotNET   阅读(0)   评论(0)    发表时间:2013-02-21 21:55  星期四

评论区

发表评论

        姓名:
邮箱|网站:
        内容:

  (可按Ctrl+Enter提交)