程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#拜托delegate實例解析

C#拜托delegate實例解析

編輯:C#入門知識

C#拜托delegate實例解析。本站提示廣大學習愛好者:(C#拜托delegate實例解析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#拜托delegate實例解析正文


所謂c#的拜托就是說把函數當參數來傳遞。

這個在js完整就用不著弄甚麼拜托器械,直接轉就是了。而關於C#來講則不是如許!

一個函數,假如它的參數是函數,那末是如許子寫的 :

public void method(Action<string, Int32> voidMethod, Func<string, Int32> returnMethod)
Action<string, Int32> voidMethod

意思是說這個將被傳出去的函數是一個沒有return的函數,就是public void, 它須要一個str參數
(這裡提一下,js中每一個函數都是return的即便你沒有寫,它也會return undefiend)

Func<string, Int32> returnMethod

意思是說這個函數是一個有return的函數,最初一個參數Int32代表了它的return是一個Int32 , 就是 public Int32啦, 那末除最初一個參數其他的都是這個函數所須要的參數了

那末若何挪用呢? 

method(delegate(string a, string b, Int32 c)
{
  //do something 
}, delegate(string a, string b)
{
  //do something 
  return 5;
});

這裡應用的是匿名函數delegate(){},這個比擬習氣,由於js年夜多半會用匿名函數的。

固然,假如你硬是愛好用老式的寫法,也能夠寫比擬傳統的:

public void method(tuoguan voidMethod, tuoguan2 returnMethod) //這裡弗成以在寫 Action or Func了
{
  Int32 i = returnMethod("b");
  voidMethod("b");
}
public delegate void tuoguan(string name);
public delegate Int32 tuoguan2(string name);
public Int32 returnMethod(string name)
{
  return 5;
}

  tuoguan xx = delegate(string name) 
  {
 //do somthing 
  };
  tuoguan2 yy = returnMethod; //這裡可以指向某個辦法,不是必定要寫 delegate
  method(xx, yy);

拜托是很好用的,好比我對出來的匿名函數也能夠援用到感化域上的變量,這個和js是一樣的!
把它當js來寫,我認為如許異常好!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved