弱类型语言的优势:C#的委托概念在Javascript中的实现
生活随笔
收集整理的這篇文章主要介紹了
弱类型语言的优势:C#的委托概念在Javascript中的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?? 先看委托的定義:用于聲明一個引用類型,該引用類型可用于封裝命名方法或匿名方法。委托類似于 C++ 中的函數指針;但是,委托是類型安全和可靠的。
通過下面的方式進行定義 一個參數為string 型,無返回值的 ?委托
?publicdelegatevoid OnAction(string para);
//使用 public class TestClass {
??? ? static void Main(string [] args)
??????? {
??????????? OnAction? mydelegate = new OnAction(TestFunctionOne );
??????????? mydelegate("Hello delegate"); //mydelegate = new OnAction(TestFuncitonTwo);
??????????? //mydelegate("Hello delegate"); } //測試用方法 public void TestFunctionOne (string para) { Console.Writeline(para); } pulic void TestFuncitonTwo(string para) { Console.Writeline("string is:?" + para); } } 通過實例可以看得出,委托實際上就是個方法模板,你在實例化時傳給他什么樣的方法名,那它的實例化對象就是那個方法。只要是符合委托定義的方法簽名的方法,都可以做為實例化時的參數。 委托解決的問題,就是在運行時,進行方法注入。靈活的解決問題,降低耦合。 那Javascript是如何實現這種機制的呢?? 弱類型的優勢在這個機制下面被體現出來了。。。很簡單就實現嘍 ? function func(TestFunction,para){ ?? TestFunction(para); } funciotn Main(){ ??? func(TestFunctionOne,"Hello delegate"); ??? func(TestFuncitonTwo,"Hello delegate"); } Main(); ?//測試用方法 function TestFunctionOne (para){ ??Console.Writeline(para); } function TestFuncitonTwo(para){ ???? Console.Writeline("string is:?" + para); } 學強類型語言的同學,希望大家也能學一門弱類型語言,這樣可以更好理解強類型語言為啥叫強類型。
通過下面的方式進行定義 一個參數為string 型,無返回值的 ?委托
?publicdelegatevoid OnAction(string para);
//使用 public class TestClass {
??? ? static void Main(string [] args)
??????? {
??????????? OnAction? mydelegate = new OnAction(TestFunctionOne );
??????????? mydelegate("Hello delegate"); //mydelegate = new OnAction(TestFuncitonTwo);
??????????? //mydelegate("Hello delegate"); } //測試用方法 public void TestFunctionOne (string para) { Console.Writeline(para); } pulic void TestFuncitonTwo(string para) { Console.Writeline("string is:?" + para); } } 通過實例可以看得出,委托實際上就是個方法模板,你在實例化時傳給他什么樣的方法名,那它的實例化對象就是那個方法。只要是符合委托定義的方法簽名的方法,都可以做為實例化時的參數。 委托解決的問題,就是在運行時,進行方法注入。靈活的解決問題,降低耦合。 那Javascript是如何實現這種機制的呢?? 弱類型的優勢在這個機制下面被體現出來了。。。很簡單就實現嘍 ? function func(TestFunction,para){ ?? TestFunction(para); } funciotn Main(){ ??? func(TestFunctionOne,"Hello delegate"); ??? func(TestFuncitonTwo,"Hello delegate"); } Main(); ?//測試用方法 function TestFunctionOne (para){ ??Console.Writeline(para); } function TestFuncitonTwo(para){ ???? Console.Writeline("string is:?" + para); } 學強類型語言的同學,希望大家也能學一門弱類型語言,這樣可以更好理解強類型語言為啥叫強類型。
轉載于:https://www.cnblogs.com/fync/archive/2012/11/01/2749336.html
總結
以上是生活随笔為你收集整理的弱类型语言的优势:C#的委托概念在Javascript中的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 红烧牛肉是用冷水烧还是用开水烧
- 下一篇: C#.NET 通用权限管理系统组件 大数