09/11/2017 vids
Property:
using System; namespace LinqOperators { class Student { private int Sid; private string sname; public int StudentID { get { return Sid; } set { Sid = value; } } //public void Display() //{ // Console.WriteLine(Sid); //} public string StudentName { get { return sname; } set { sname = value; } } } class Program { static void Main(string[] args) { Student obj=new Student(); obj.StudentID = 10; obj.StudentName = "Zaki"; Console.WriteLine(obj.StudentName); Console.WriteLine(obj.StudentID); //obj.Display(); Console.ReadKey(); } } }
Automatic Property:
//auto implemented property using System; namespace LinqOperators { class Student { public int Sid { private get; set; } public string Sname { get; set; } } class Program { static void Main(string[] args) { Student obj=new Student(); obj.Sid = 10; obj.Sname = "Zaki"; Console.WriteLine(obj.Sid+" "+obj.Sname); Console.ReadKey(); } } }
Delegates:
using System; namespace Delegates { delegate int Caluclation(int Fnum, int Snum); class Delegates { public static int Add(int Firstnum, int Secondnum) { return Firstnum + Secondnum; } public static int Sub(int Firstnum, int Secondnum) { return Firstnum - Secondnum; } public static string Display(string Sname) { return Sname; } public static void Main(string[] args) { Caluclation calc = Add; Console.WriteLine(calc.Invoke(3, 4)); calc = Sub; Console.WriteLine(calc.Invoke(10, 5)); Console.ReadKey(); } } }
Lambda Expression with FUNC:
using System; namespace LamdawithDelegates { delegate int MyDelegatesss(int firstNum, int secondNum); class Program { public static int Add(int firstNum, int secondNum) { return firstNum + secondNum; } static void Main(string[] args) { MyDelegatesss calc = Add; Console.WriteLine(calc.Invoke(5,4)); Console.ReadKey(); } } }
Some logics:
//delegate example delegate int MyDelegate(int firstNumber, int secondNumber); MyDelegate myDelegate=(firstNumber,secondNumber)=>firstNumber+secondNumber int result=myDelegate(3,4); Console.WriteLine(result);
Lambda using Function:
//lambda using FUNC Func<int, int , int> funcdel=(a,b)=>{return a*b}; int Result=funcdel(30,20); Console.WriteLine(Result);
Multicast Delegates:
A delegate instance holding the multiple method at a time is multicast delegate.
But the rule is that all the method must be altered because all method in a single instance they remain present. Multiple reference method at a time.
using System; namespace MulticastDelegates { public delegate void MultiDelegate(int a, int b); public class SampleClass { public static void Add(int x, int y) { Console.WriteLine("Addition value:"+(x+y)); } public static void Sub(int x, int y) { Console.WriteLine("Subtraction Value:"+(x-y)); } public static void Mul(int x, int y) { Console.WriteLine("Mutiplication Value:"+(x*y)); } } class Program { static void Main(string[] args) { MultiDelegate del = SampleClass.Add; del += SampleClass.Sub; del += SampleClass.Mul; del(10, 5); Console.WriteLine(); del -= SampleClass.Mul; del -= SampleClass.Sub; del(10, 5); Console.ReadKey(); } } }
Anonymous Method:
Unnamed function. In the bracket we are writing the logic. Unnamed method we are writing the logic. Unanmed method.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AnonynemousMethod { public delegate double Areapointer(int r); class Program { static void Main(string[] args) { Areapointer point=new Areapointer( delegate(int r) { return 3.14 * r * r; } ); double area = point(20); Console.WriteLine(area); Console.ReadKey(); } } }
The same AnonymousMethod work can be done in a single line with this lambda operation:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AnonynemousMethod { public delegate double Areapointer(int r); class Program { static void Main(string[] args) { Areapointer point = r => 3.14 * r * r; double area = point(20); Console.WriteLine(area); Console.ReadKey(); } } }
=> This is known as goes to operator and it is similar to AnonymousMethod()
Linq also using lambda not only Delegate
Func:
Func is a readymade function where the first data type is for input and the second one is for output. It does not need any delegate to declare.
using System; namespace FuncwithLambda { class Program { static void Main(string[] args) { Func<double, double> area = r => 3.14 * r * r; double result = area(20); Console.WriteLine(result); Console.ReadKey(); } } }
Action:
Action does not support any return type:
using System; namespace Action { class Program { static void Main(string[] args) { Action<String> area = sttr => Console.WriteLine(sttr); area("zaki"); } } }