木子屋 Dnawo's BLOG

2007-12 归档

共 64 篇

C#函数重载与委托

同一个函数,根据不同的参数执行不同的操作叫函数重载; 相同的参数,在不同场合可调用不同的函数来操作叫委托; 同一个函数,既可对int数组求最大值,也可对double数组求最大值,这是重载; 同一个int数组,既可对它们求最大值,也可对他们求最小值,这是委托; 函数重载: 函数委托:

函数重载:C# VS JS

在调用C#的函数时,必须匹配函数的签名,但在有些场合中我们需要让同一个函数能操作不同的变量,这就要使用重载函数这一技术。函数重载允许创建同名的多个函数,这些函数可使用不同的参数类型,在调用函数时会根据使用的参数类型执行相应的函数: 1.ASP和JS的函数重载 ASP中没有函数重载,因为ASP根本不允许同名函数的存在,即使他们的参数不同。由于JS的函数在被调用时并不会去检验参数的个数是否和定义时指定的一样,这就便于让我们实现和C#类似的重载,加之JS是一种无类型的语言,所以在"重载"个人觉得比C#更出色。

C#和JS的转义序列

1.C#和JS对反斜杠的使用限制不同 在C#和JS中,反斜杠("\")都是作为转义序列的一部分。在JS中任何场合下都可以使用反斜杠,当它和背后的一个字符组合是一个转义序列时,就进行转义,否则,JS会忽略掉它,如下所示: 但在C#中,除了在使用转义序列(\'、\"、\\、\0、\a、\b、\f、\n、\r、\t、\v)的场合下其他地方不得再用反斜杠(除了使用逐字指定字符串),如下代码: 2.反斜杠在表示系统路径上的应用 因为反斜杠的特殊用途,所以用要表示系统路径都得用转义序列\\: 不过C#中还有另外一种表示法,使用逐字指定字符串,代码如下:

JS的&&和&,||和|运算符两个不同点

1.性能上的比较 如果&&的第一个运算数是false,就不再考虑第二个运算数,直接返回false;如果||的第一个运算数是true,也不再考虑第二个运算数,直接返回true。&和|运算符却不是这样的,它们总是要比较两个运算数才得出结果,因而性能上&&和||会比&和|好。 由于&&和||可能不考虑第二个运算数,所以我们应尽量避免在它们右边使用具有副作用(赋值、递增、递减和函数调用)的表达式,除非非常清楚自己再做什么。 2.逐位运算 &和|除了可以进行"逻辑运算"外,还可以进行逐位运算,而&&和||只能进行逻辑运算。 3.JS的&和|与C#的&和| 在JS中,&和|只是逐位运算符,而在C#中,&和|既是逻辑运算符,又是位运算,通过以下代码可以看出。…