2015-03-06 7 views
-3
public static void Main2(string[] args) 
     { 
      WebRequest_BeginGetRequeststream.RequestCheck(); 
      WebRequest_BeginGetRequeststream.ReadCallback(IAsyncResult asynchronousResult); 
     } 

Это метод, который я хочу назвать.C# Вызов метода внутри другого метода

static void OnMsg(SteamFriends.FriendMsgCallback callback) 
     { 
      string msg = callback.Message; 

      //Announcement Related Messages 
      if (msg == "RequestCheck") 
      { 
       Main2 (string[] args); 
       Console.WriteLine("Starting Operation Line for Announcement Creation."); 
       Console.WriteLine("Version 1.08 of Announcement Code Initiated."); 
      } 
} 

Здесь я хочу вызвать метод, я имел все еще установлен, но я хотел бы сделать это так, что внутри ...

if (msg == "RequestCheck") 
       { 
        Main2 (string[] args); 
        Console.WriteLine("Starting Operation Line for Announcement Creation."); 
        Console.WriteLine("Version 1.08 of Announcement Code Initiated."); 
       } 

Можно назвать Main2, который будет работать WebRequests, он говорит мне, что мне нужно сделать тип возврата, и когда я это сделаю, я получаю целую кучу ошибок.

Как мне позвонить внутри метода OnMsg и вызвать Main2 без нарушения метода.

, кстати, чтобы добраться туда, где я сейчас. Я следил за этим кодом.

public class AllMethods 
{ 
    public static void Method2() 
    { 
     // code here 
    } 
} 

class Caller 
{ 
    public static void Main(string[] args) 
    { 
     AllMethods.Method2(); 
    } 
} 

Я видел, что этот метод имел работу и пытался попробовать этот нашим, но я до сих пор есть проблемы, требующие внутри OnMsg.

+2

Вы, похоже, не знакомы с синтаксисом методов вызова. Вы не указываете типы параметров в вызове метода - только сами аргументы. Поэтому 'Main (string [] args)' фактически будет просто 'Main (args)'. Если вы очень новичок в C#, я бы настоятельно рекомендовал вам написать простой * синхронный * код, прежде чем вы погрузитесь в асинхронность. –

ответ

0

Вместо этого следует указать Main2 (args);, где args - string[], например new string[]{"foo", "bar"} или null. Альтернативно, вы можете неявно передавать указанные аргументы вызову в виде массива, если вы добавите params в аргумент основных методов args: public static void Main2(params string[] args) { ... }

0

вам необходимо передать параметры функции Main2, в этом случае массив строк.

Смежные вопросы