Archive

Archive for May, 2015

Action C#

May 31, 2015 1 comment

Action adalah delegate yang mempunyai zero, satu atau lebih input parameter dan mengembalikan void. Kita dapat menggunakan Action untuk merepresentasikan method yang dapat di-pass sebagai parameter tanpa mendeklarasikan delegate secara explisit.

Syntax

delegate void Action();
delegate void Action(T arg);
delegate void Action(T1 arg1, T2 arg2);
 .. and so on, up to T16

Example

using System;
using System.Text;
using System.Threading.Tasks;
using System.Linq;
using System.Collections.Generic;

namespace AppBasicConsole
{
class Program
{
public static void Consumer(IEnumerable<string> names,  Action<string> consumerResolver)
{
if (consumerResolver == null) throw new ArgumentNullException("Exception is thrown");

foreach(string name in names)
{
consumerResolver(name);
}
}

static void Main(string[] args)
{
IEnumerable<string> names = new[]{"Jack", "Wilson", "Catherine", "Rina", "Pipit", "Job"};

Console.WriteLine("Upper Case: ");
Consumer(names, item => Console.WriteLine(item.ToUpper()));

Console.WriteLine("Length: ");
Consumer(names, item => Console.WriteLine(item.Length));
}
}
}

Capture screen

Action Delegate

Action Delegate

Referensi : dari berbagai sumber.

Semoga bermanfaat.

Func C#

May 17, 2015 Leave a comment

Func adalah delegate yang mempunyai zero, satu atau lebih input parameter dan mengembalikan value/reference. Kita dapat menggunakan Func untuk merepresentasikan method yang dapat di-pass sebagai parameter tanpa mendeklarasikan delegate secara explisit.

Berikut ini syntax Func

delegate TResult Func ();
delegate TResult Func (T arg);
delegate TResult Func (T1 arg1, T2 arg2);
.. and so on, up to T16

Example.

using System;
using System.Text;
using System.Threading.Tasks;
using System.Linq;
using System.Collections.Generic;

namespace AppBasicConsole
{
class Program
{
public static IEnumerable GetNumbers(IEnumerable numbers, Func numberResolver)
{
foreach (int number in numbers)
if (numberResolver(number))
yield return number;
}

static void Main(string[] args)
{

IEnumerable numbers = new[] { 1, 2, 3, 5, 4, 6, 7, 27, 8, 13, 21, 32, 9, 11, 14, 24};

IEnumerable greaterThanSeven = GetNumbers(numbers, x => x > 7);
greaterThanSeven.ToList().ForEach(Console.WriteLine);

Console.WriteLine("--------------");

IEnumerable greaterThanOneAfterDividedByEleven = GetNumbers(numbers, n => (n / 11) > 1);
greaterThanOneAfterDividedByEleven.ToList().ForEach(Console.WriteLine);

}
}
}

Capture screen.

Func Delegate

Func Delegate

Referensi : dari berbagai sumber.

Semoga bermanfaat.