如何将值从一个类返回到另一个类?

时间:2011-09-09 23:14:32

标签: c# class return

我正在创建一个包含三个类的程序:

  1. 输出类从其他两个类接收数据,写入两个新字符串,将特殊格式与另一个字符串组合并输出
  2. AidaF类有一个每秒返回一个值(一个字符串)的方法
  3. GmailF类有一个方法,每隔一分钟左右返回一个值(一个字符串)
  4. 所以我厌倦了使用return string;将类2和3中的数据返回到第一个类但是只返回当前类的值,而不是第一个类。

    以下是我正在处理的这段代码,尽管如此还是很简单。但基础知识就在那里。

    namespace Final
    {
        public class Output
        {
            public static void Main()
            {
                Console.WriteLine(gml + aida);
            }
        }
    
        public class AidaF
        {
            private static System.Timers.Timer aTimer;
    
            public static void AMain()
            {
                aTimer = new System.Timers.Timer(1000);
                aTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
                aTimer.Interval = 1000;
                aTimer.Enabled = true;
            }
    
    
            private static void OnTimedEvent(object source, ElapsedEventArgs e)
            {
                ...
                reader.ReadToFollowing("value");
                aida.Append(reader.ReadElementContentAsString()).Append(",");
                return aida;
                ...
            }
        }
    
        public class GmaillF
        {
            private static System.Timers.Timer gTimer;
    
            public static void GMain()
            {
                gTimer = new System.Timers.Timer(200000);
                gTimer.Elapsed += new ElapsedEventHandler(OnTimedEvent1);
                gTimer.Interval = 200000;
                gTimer.Enabled = true;
            }
    
            private static void OnTimedEvent1(object source, ElapsedEventArgs e)
            {
                CheckMail();
            }
    
            public static string CheckMail()
            { 
              ...
              gml.Append(reader.ReadElementContentAsString()).Append(",");
              return gml;
              ...
            }
        }
    }
    

1 个答案:

答案 0 :(得分:1)

您需要从调用类调用公开的静态方法才能使其正常工作,例如,您的main看起来更像是这样:

public static void Main() {
Console.WriteLine(GmailF.CheckMail() + AidaF.OnTimedEvent());
}

我只是猜测CheckMail和OnTimedEvent是你想要返回的字符串。 CheckMail和OnTimedEvent都必须是公共静态字符串才能使上述工作。