Cursos /
Advanced C# with .NET
Task - Defining Delegates
You can download the base code by cloning the Github Repository.
Your task is to define a delegate type called Operation
, which can refer to the methods that have the same signature as the max
and avg
methods.
Currently there is no delegate definition so the program doesn't compile, however after defining the delegate type you should be able to successfully compile and run the program, indicating that your solution is correct.
Use the syntax
delegate <return type> <type name> <parameter list>
to define the delegate type.
using System.ComponentModel.DataAnnotations;
namespace DelegateIntro
{
internal class Program
{
// Write code below this line
delegate float Operation(int[] nums);
// Write code above this line
static void Main(string[] args)
{
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine(arrayMethod(max, nums));
Console.WriteLine(arrayMethod(avg, nums));
}
static float arrayMethod(Operation opr, int[] nums)
{
return opr(nums);
}
static int max(int[] nums)
{
int max = nums[0];
for(int i = 1; i < nums.Length; i++)
if (max < nums[i])
max = nums[i];
return max;
}
static float avg(int[] nums)
{
float sum = 0;
for(int i = 0; i < nums.Length; i++)
sum += nums[i];
return sum / nums.Length;
}
}
}
Tudo estava claro?
Seção 2. Capítulo 2
Conteúdo do Curso
Advanced C# with .NET
1. Introduction to Desktop Development with .NET
Advanced C# with .NET
Task - Defining Delegates
You can download the base code by cloning the Github Repository.
Your task is to define a delegate type called Operation
, which can refer to the methods that have the same signature as the max
and avg
methods.
Currently there is no delegate definition so the program doesn't compile, however after defining the delegate type you should be able to successfully compile and run the program, indicating that your solution is correct.
Use the syntax
delegate <return type> <type name> <parameter list>
to define the delegate type.
using System.ComponentModel.DataAnnotations;
namespace DelegateIntro
{
internal class Program
{
// Write code below this line
delegate float Operation(int[] nums);
// Write code above this line
static void Main(string[] args)
{
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
Console.WriteLine(arrayMethod(max, nums));
Console.WriteLine(arrayMethod(avg, nums));
}
static float arrayMethod(Operation opr, int[] nums)
{
return opr(nums);
}
static int max(int[] nums)
{
int max = nums[0];
for(int i = 1; i < nums.Length; i++)
if (max < nums[i])
max = nums[i];
return max;
}
static float avg(int[] nums)
{
float sum = 0;
for(int i = 0; i < nums.Length; i++)
sum += nums[i];
return sum / nums.Length;
}
}
}
Tudo estava claro?
Seção 2. Capítulo 2