Возвращение значения из анонимного метода - C#

Узнай цену своей работы

Формулировка задачи:

Как вернут значение из анонимных методов
returnRate = d;
? Или какой иной подход использовать?
using SocketIOClient;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
 
namespace ConsoleApplication9
{
    class Program
    {
        static void Main(string[] args)
        {
            Cars c = new Cars();
            Bicycles b = new Bicycles();
        }
    }
    public class Cars
    {
        public Cars()
        {
            GetData G1 = new GetData();
            Dictionary<string, string> D1 = new Dictionary<string, string>();
            G1.ProcessCars(ref D1);
        }
    }
    public class Bicycles
    {
        public Bicycles()
        {
            GetData G2 = new GetData();
            Dictionary<string, string> D2 = new Dictionary<string, string>();
            G2.ProcessBicycles(ref D2);
        }
    }
    public class Singleton
    {
        private static Singleton instance;
 
        public Dictionary<string, Action<MessageEventArgs>> Handle;
        private Singleton() 
        {
            Handle = new Dictionary<string, Action<MessageEventArgs>>();
        }
 
        public static Singleton Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = new Singleton();
                }
                return instance;
            }
        }
    }
    public class GetData
    {
        private Client socket;
        public GetData()
        {
            socket = new Client("http://echo.jsontest.com/bicycles/10");
            socket.Message += Message;
        }
        public void ProcessBicycles(ref Dictionary<string, string> returnRate)
        {
            Singleton.Instance.Handle.Add("bicycles", (m) => 
            {
                Dictionary<string, string> d = m.Message.Json.GetFirstArgAs<Dictionary<string, string>>() as Dictionary<string, string>;
                //returnRate = d;
            });
        }
        public void ProcessCars(ref Dictionary<string, string> returnRate)
        {
            Singleton.Instance.Handle.Add("cars", (m) =>
            {
                Dictionary<string, string> d = m.Message.Json.GetFirstArgAs<Dictionary<string, string>>() as Dictionary<string, string>;
                //returnRate = d;
            });
        }
        private void Message(object sender, MessageEventArgs e)
        {
            if (Singleton.Instance.Handle.ContainsKey(e.Message.Event))
            {
                Singleton.Instance.Handle[e.Message.Event](e);
            }
 
        }
    }
}

Решение задачи: «Возвращение значения из анонимного метода»

textual
Листинг программы
public Dictionary<string, Action<MessageEventArgs>> Handle;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.462 из 5
Похожие ответы