understanding func<T, TResult> C#

Posted by Satish Raj on Stack Overflow See other posts from Stack Overflow or by Satish Raj
Published on 2010-04-18T00:47:32Z Indexed on 2010/04/18 0:53 UTC
Read the original article Hit count: 692

Filed under:

Hi I am trying to refactor some of my code to use Func I have created a sample to try to understand how it works but I am getting compilation error. In the e.g. below when I am trying to access the parameter attributes or return the return value the compiler complain.

Clarifications please.

using System;

namespace chsarp
{
    class Program
    {
        static void Main(string[] args)
        {
            ParamInput input = new ParamInput();
            input.ReservationID = 10;
            Test testMethod = new Test();
            Func<ParamInput, ReservationResult> methodToInvoke = testMethod.GetStatus;
            ReservationResult result = TestFn(methodToInvoke, input);
        }

        static Result TestFn<Param, Result>(Func<Param, Result> methodToInvoke, Param parameter) where Result : new()
        {
            Result result = new Result();
            try
            {
                result = methodToInvoke(parameter);
            }
            catch (Exception exception)
            {
                result.status = string.Format("Error-{0} during reserving {1}",
                                                parameter.ReservationID,
                                                exception.Message);
            }
            return result;
        }
    }

    class Test
    {
        public ReservationResult GetStatus(ParamInput msg)
        {
            ReservationResult result = new ReservationResult();
            result.status = string.Format("The ReservationID-{0}", msg.ReservationID);
            return result;

        }
    }

    class ParamInput
    {
        public int ReservationID { get; set; }
    }

    class ReservationResult
    {
        public string status { get; set; }
    }

}

© Stack Overflow or respective owner

Related posts about c#3.0