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或以上版才支持。扩展方法名不能与系统方法重名。
好玩吧,当然它的用途不是为了好玩,它可以实现一些更复杂,更有用的功能,记下来当你需要的时候自然会想到。