static void Main(string[] args) { Console.WriteLine("Add or Multiply?"); var answer = Console.ReadLine(); if (answer.ToLower() == "add") { nc = new NumberChanger(AddNum); } else { nc = new NumberChanger(MultNum); } //calling the methods using the delegate objects PrintIt(); Console.ReadKey(); }
private int DelegateSimple_0() { //create delegate instances int localVar = 33; //create delegate instances NumberChanger nc = delegate(int x) { int lnc = 12; lnc += x; lnc += num; lnc += localVar; localVar = 22; return(lnc); } ; NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc += nc1; nc += nc2; nc += ncField; //calling the methods using the delegate objects nc1(25); int r1 = getNum(); nc2(5); int r2 = getNum(); nc(5); int r3 = getNum(); return(r1 + r2 + r3 + localVar); }
static void GenericDelegatesDemo() { NumberChanger <int> nc = new NumberChanger <int>(AddNum); nc(10); Console.WriteLine(GetNum()); }
public List <string> run() { List <string> results = new List <string>(); /*NumberChanger nc1 = new NumberChanger(AddNum); * NumberChanger nc2 = new NumberChanger(MultNum); * * //calling the methods using the delegate objects * nc1(25); * results.Add(string.Format("Value of Num: {0}", getNum())); * nc2(5); * results.Add(string.Format("Value of Num: {0}", getNum()));*/ NumberChanger nc; NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc = nc1; nc += nc2; //calling multicast nc(5); results.Add(string.Format("Value of Num: {0}", getNum())); return(results); }
static void Main(string[] args) { Console.WriteLine("asdsad"); Console.WriteLine("thread in main is :" + Thread.CurrentThread.ManagedThreadId); Thread thread2 = new Thread(someMethod); thread2.Start(); caller(); var thread1 = Thread.CurrentThread.ManagedThreadId; Console.WriteLine("thread in main is :" + thread1); Console.WriteLine("asdsad"); HandelingThreads(); NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); }; nc(10); nc = new NumberChanger(AddNum); nc(5); FillValues(); foreach (var item in Filter()) { Console.WriteLine(item); } }
static void Main(string[] args) { // 创建一个Square的实例,这个语句其实就是下边这个 //Transformer transformer = new Transformer (Square); 和下边语句同样效果 //Transformer t = Square; //var result = t(3); //Console.WriteLine(result); int[] values = { 1, 2, 3 }; Transforme.Transform (values, Square); foreach (var item in values) { Console.WriteLine(item+" "); } NumberChang numberChang = new NumberChang(); var num1 = new NumberChanger(numberChang.AddNum); var num2 = new NumberChanger(numberChang.NulNum); Console.WriteLine($"{num1(10)},{numberChang.GetNum()}"); Console.WriteLine($"{num2(5)},{numberChang.GetNum()}"); ProgressReporter p = Write; p += writeFile; p -= writeFile; ProgressRepor.HardWork(p); ProRepotrer pro = new ProRepotrer(); ProRepo proRepo = pro.Instance; proRepo(99); Console.WriteLine(p.Target==pro); Console.WriteLine(p.Method); }
public string CallDelegates(int numberFirst, int numberSecond) { StringBuilder stringBuilder = new StringBuilder(); NumberChanger numberAddition = new NumberChanger(AddNumber); NumberChanger numberMultipy = new NumberChanger(MultiplyNumber); NumberChanger addAndMultiply; // + composing the delegate; - remove the compostied delegate addAndMultiply = numberAddition + numberMultipy; var additionResult = numberAddition(numberFirst, numberSecond); stringBuilder.Append("\nAddition no." + OperationCounter + " : "); stringBuilder.Append(additionResult); var multiplicationResult = numberMultipy(numberFirst, numberSecond); stringBuilder.Append("\nMultiplication no." + OperationCounter + " : "); stringBuilder.Append(multiplicationResult); var addAndMultiplyResult = addAndMultiply(numberFirst, numberSecond); stringBuilder.Append("\nAddition and Multiplication no. " + OperationCounter + " : "); stringBuilder.Append(addAndMultiplyResult); return(stringBuilder.ToString()); }
static void Main(string[] args) { ////create delegate instances //NumberChanger nc1 = new NumberChanger(AddNum); //NumberChanger nc2 = new NumberChanger(MultNum); ////calling the methods using the delegate objects //nc1(25); //Console.WriteLine("Value of Num: {0}", getNum()); //nc2(5); //Console.WriteLine("Value of Num: {0}", getNum()); //Console.ReadKey(); //Multicast delegates //create delegate instances NumberChanger nc; NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc = nc1; nc += nc2; //calling multicast nc(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); }
static void Main(string[] args) { //create delegate instances NumberChanger nc; NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); num = 10; //calling the methods using the delegate objects nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); nc = nc1; // register first method nc += nc2; // register second method num = 10; //calling multicast nc(5); // call AddNum and MultNum Console.WriteLine("Value of Num: {0}", getNum()); num = 10; nc -= nc1; // unregister first method nc(2); // call MultNum only Console.WriteLine("Value of Num: {0}", getNum()); }
static void Main(string[] args) { //Console.WriteLine("het nummer is {0}", AddNumber(3)); NumberChanger nc = new NumberChanger(AddNumber); Console.WriteLine("het nummer is {0}", nc(5)); Console.WriteLine("het nummer is {0}", nc.Invoke(3)); NumberChanger ncMult = new NumberChanger(Multinumber); Console.WriteLine("Het nummer is {0}", ncMult(2)); NumberChanger ncDev = new NumberChanger(DevideNumber); Console.WriteLine("Het nummer is {0}", ncDev(2)); NumberChanger ncSub = new NumberChanger(subtractNumber); Console.WriteLine("Het nummer is {0}", ncSub(3)); TextChanger tc = new TextChanger(AddText); Console.WriteLine("De tekst is {0}", tc(" en ik wil een kopje koffie")); //instantiate the delegate //TextChanger word = DelegateMethod; //call the delegate //word("helloow"); GetWord word = WordValue; GetValue value = NumberValue; value(5); value(ncSub(5)); //value(nc(1)); value(ncMult(5)); word(message); }
static void Main(string[] args) { //create delegate instances using the anonymous method NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); }; //calling the delegate directly above using the anonymous method nc(10); //instantiating the delegate using the named method // now, whenever nc is passed a value, it will be sent // to the addNum method nc = new NumberChanger(AddNum); //calling the delegate using the named methods nc(5); //instantiating the delegate using another named method nc = new NumberChanger(MultNum); //calling the delegate using the named methods nc(2); Console.ReadKey(); }
public static void demo() { Console.WriteLine("\n === R_Anonymous_Func ==="); // 使用匿名方法创建委托实例 NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); }; // 使用匿名方法调用委托 nc(10); // 使用命名方法实例化委托 nc = new NumberChanger(AddNum); // 使用命名方法调用委托 nc(5); // 使用另一个命名方法实例化委托 nc = new NumberChanger(MultNum); // 使用命名方法调用委托 nc(2); }
public static void Main(string[] args) { Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine("Hello Anonymous Methods In C#.."); Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine("----------------------first example---------------------"); Console.WriteLine(""); Console.WriteLine(""); //create delegate instances using anonymous method NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous method : {0}", x); }; //calling the delegate using the anonymous method nc(100); //instantiating the delegate using the named methods nc = new NumberChanger(ClassDelegate.AddNum); //calling the delegate using the named methods nc(5); //instantiating the delegate using the other named methods nc = new NumberChanger(ClassDelegate.MultNum); //calling the delegate using the named methods nc(2); Console.ReadKey(); }
/// <summary> /// 匿名類型5個特性: /// 1. 必須有初始值,以New初始化 /// 2. 當成立匿名型別資料後,只能唯讀 /// 3. 可以在Foreach中使用 (循環) /// 4. 支持感知智能 (強型別可以用.叫出屬性) /// 5. 可以擁有方法 (Method) /// </summary> public void Anonymous_Characteristic() { //1. 必須有初始值,以New初始化 var newData = new { Name = "Louis", ID = 1234567 }; // 2. 當成立匿名型別資料後,只能唯讀 //newData.ID = 3345678; //這行會出錯 , 不可以設定值 // 3. 可以在Foreach中使用 (循環) var newDataList = new[] { Name = "A", Name = "B" }; foreach (var item in newDataList) { Console.WriteLine(item); } // 4. 支持感知智能 (強型別可以用.叫出屬性) var temp = newData.Name; // 5. 可以擁有方法 (Method) NumberChanger nc = delegate(int x) { Console.WriteLine("Anonymous Method: {0}", x); }; }
public void PrintValue() { // 创建委托实例 NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); // 使用委托调用方法 int a = nc1(25); Console.WriteLine(a); //35 Console.WriteLine(GetNum()); int b = nc2(5); Console.WriteLine(b); //175 Console.WriteLine(GetNum()); // 例1 GreetPeople("Jimmy Zhang", EnglishGreeting); GreetPeople("张子扬", ChineseGreeting); GreetingDelegate delegate1; delegate1 = EnglishGreeting; delegate1 += ChineseGreeting; // 多播 GreetPeople("王五", delegate1); delegate1("张三"); }
public static void test() { NumberChanger nc1 = new NumberChanger(Addnum); NumberChanger nc2 = new NumberChanger(Multnum); nc1(25); System.Console.WriteLine(GetNum()); }
static void Main(string[] args) { NumberChanger dl1 = new NumberChanger(Program.Add); NumberChanger dl2 = new NumberChanger(Program.Multiply); Console.WriteLine(dl1(20)); Console.WriteLine(dl2(20)); Console.ReadKey(); }
static void Main() { num = 25; //NumberChanger n = new NumberChanger(Add); NumberChanger n2 = new NumberChanger((int x) => { num += x; });//lambda https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions#statement-lambdas n2(25); int j = 5; }
private void multi_cast_delegate(object sender, RoutedEventArgs e) { NumberChanger nc = new NumberChanger(AddNum); nc += new NumberChanger(MultNum); MessageBox.Show(getNum().ToString()); nc(5); MessageBox.Show(getNum().ToString()); }
static void Main(string[] args) { NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(AddNum2); nc1 += nc2; nc1(5); Console.WriteLine(getNum()); }
static void VD1() { NumberChanger nc1 = new NumberChanger(TestDelegate.AddNum); NumberChanger nc2 = new NumberChanger(TestDelegate.MultNum); nc1(25); Console.WriteLine("Value of Num: {0}", TestDelegate.getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", TestDelegate.getNum()); }
protected void Button6_Click(object sender, EventArgs e) { NumberChanger <int> deN1 = new NumberChanger <int>(DelegateDemo.AddNum); NumberChanger <int> deN2 = new NumberChanger <int>(DelegateDemo.MultNum); deN1(25); this.TextBox1.Text += string.Format($"\r\nValue of Num: {DelegateDemo.getNum()}"); //35 = 10+25 deN2(5); this.TextBox1.Text += string.Format($"\r\nValue of Num: {DelegateDemo.getNum()}"); //175 = 35*5 }
static void Main(string[] args) { NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc1(25); Console.WriteLine("Value of Num : {0}", getNum()); nc2(5); Console.WriteLine("Value of Num : {0}", getNum()); }
static void Main(string[] args) { NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc1(25); Console.WriteLine(GetNum()); nc2(10); Console.WriteLine(GetNum()); }
static void Main(string[] args) { NumberChanger <int> nc1 = new NumberChanger <int>(AddNum); NumberChanger <int> nc2 = new NumberChanger <int>(MultNum); nc1(25); Console.WriteLine(num); nc2(5); Console.WriteLine(num); }
public static int GetValue() { NumberChanger nc; var nc1 = new NumberChanger(AddNum); var nc2 = new NumberChanger(MultNum); nc = nc1; nc += nc2; nc(5); return(num); }
static void Main(string[] args) { NumberChanger <int> nc1 = new NumberChanger <int>(AddNum); NumberChanger <int> nc2 = new NumberChanger <int>(MultNum); nc1(25); WriteLine("Value of Num: {0}", GetNum()); nc2(5); WriteLine("Value of Num: {0}", GetNum()); ReadKey(); }
public static void CustomDelegate() { NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); Console.WriteLine("Hello Custom Delegate!"); nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); }
static void Main(string[] args) { NumberChanger operateNumber = new NumberChanger(SumNumber); //Multicast delegate operateNumber += MultNumber; operateNumber(5); Console.WriteLine(GetNumber()); }
static void Main(string[] args) { //Console.WriteLine("Hello World!"); NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc1(25); Console.WriteLine($"Value of Num: {getNum()}"); nc2(5); Console.WriteLine($"Value of Num: {getNum()}"); }
static void Main(string[] args) { NumberChanger nc; NumberChanger nc1 = new NumberChanger(Program.Add); NumberChanger nc2 = new NumberChanger(Program.Multiply); nc = nc1; nc += nc2; Console.WriteLine(nc(10)); Console.ReadKey(); }
static void Main(string[] args) { //create delegate instances NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); //calling the methods using the delegate objects nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); }
static void Main(string[] args) { //create delegate instances NumberChanger nc; NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); nc = nc1; nc += nc2; //calling multicast nc(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); }
static void Main(string[] args) { //create delegate instance(objects) NumberChanger nc1 = new NumberChanger(addNum); NumberChanger nc2 = new NumberChanger(multNum); NumberChanger nc; nc = nc1; nc += nc2; nc(5); //10+5=15 15*5=75 Console.WriteLine("value of: {0}", getNum()); //call method through delegate nc1(25); Console.WriteLine("value of: {0}", getNum()); nc2(2); Console.WriteLine("value of: {0}", getNum()); }
static void Main(string[] args) { //create delegate instances Console.WriteLine("Create a delegate for AddNum method"); NumberChanger nc1 = new NumberChanger(AddNum); Console.WriteLine("Create a delegate for MultNum method"); NumberChanger nc2 = new NumberChanger(MultNum); //calling the methods using the delegate objects Console.WriteLine("Call the delegate for adding numbers " + num + " + 25"); nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); Console.WriteLine("Call the delegate for Multipling numbers " + num + " * 5"); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); }
static void Main(string[] args) { //create delegate instances using anonymous method NumberChanger nc1 = delegate (int x) { Console.WriteLine("Anonymous Method: {0}", x); }; //instantiating the delegate using the named methods var nc2 = new NumberChanger(AddNum); //instantiating the delegate using another named methods var nc3 = new NumberChanger(MultNum); NumberChanger nc4 = x => { Console.WriteLine("Lambda Method: {0}", x); }; var nc = nc1 += nc2 += nc3 += nc4; nc(10); Console.ReadKey(); }
static void Main(string[] args) { //create delegate instances using anonymous method NumberChanger nc = delegate (int x) { Console.WriteLine("Anonymous Method: {0}", x); }; //calling the delegate using the anonymous method nc(10); //instantiating the delegate using the named methods nc = new NumberChanger(AddNum); //calling the delegate using the named methods nc(5); //instantiating the delegate using another named methods nc = new NumberChanger(MultNum); //calling the delegate using the named methods nc(2); Console.ReadKey(); }
public void TestNumberChanger() { Console.WriteLine("Testing Number Changer"); //create delegate instances NumberChanger nc1 = new NumberChanger(AddNum); NumberChanger nc2 = new NumberChanger(MultNum); //calling the methods using the delegate objects nc1(25); Console.WriteLine("Value of Num: {0}", getNum()); nc2(5); Console.WriteLine("Value of Num: {0}", getNum()); Console.ReadKey(); }