2015-03-15 2 views
-7

Здесь я пытаюсь вернуть строку из метода MapFinder() и использовать String, возвращенный из метода, для использования в другом условии в MapTracker().Как вызвать метод в методе?

public String MapFinder() 
{ 
    if ((Map.Width == 8 && Map.Height==8)) 
    { 
     return "DefaultMap"; 
    } 
    else 
     return "Something Different"; 
} 

public String MapTracker() 
{ 
    if(StringFromMapFinder == "DefaultMap"); 
    { 
     return "Hello DefaultMap"; 
    } 
    else 
    { 
     return "Hello StrangeMap"; 
    } 
+0

попробуйте это 'if (StringFromMapFinder == MapFinder())' –

+0

http://www.homeandlearn.co.uk/csharp/csharp.html – EZI

+0

Почему вы делаете downvoting? Этот вопрос тривиальен для экспертов C#, но учтите, что: (1) правильное название вопроса (2) читаемый код с попыткой автора (3) попытка четко и точно описана в тексте. Итак, почему нисходящий? – quetzalcoatl

ответ

0

Вы можете сделать это почти точно так, как вы описали, вы просто не хватает несколько битов. После некоторой минимальной фиксации ваш код будет выглядеть следующим образом:

public String MapFinder() 
{ 
    if ((Map.Width == 8 && Map.Height==8)) 
    { 
     return "DefaultMap"; 
    } 
    else 
     return "Something Different"; 
} 

public String MapTracker() 
{ 
    if(MapFinder() == "DefaultMap") // <- change 
    { 
     return "Hello DefaultMap"; 
    } 
    else 
    { 
     return "Hello StrangeMap"; // <- change 
    } 
} 

Я отметил изменения. Я сделал три:

  • фиксированной опечатка: вы получили в первом if вместо )
  • Исправлена ​​опечатка в ;: у вас есть незакрытые кавычки " в strangemap
  • Я заменил StringFromMapFinder с метод вызова

Однако, как правило, вы скорее хотите сохранить результат этого вызова где-то, а затем проверить его:

public String MapTracker() 
{ 
    String mapFinderResult; 
    mapFinderResult = MapFinder(); 
    if(mapFinderResult == "DefaultMap") 
    { 
     return "Hello DefaultMap"; 
    } 
    else 
    { 
     return "Hello StrangeMap"; 
    } 
} 

Здесь я создал переменную с именем mapFinderResult, тем я назвал метод и хранить результат в этой переменной, а затем в if я использовал переменную, чтобы проверить, что было возвращено. Эта более длинная версия такая же, как и предыдущая, только с той разницей, что результат сохраняется в переменной вместо прямого использования в состоянии if.

Я не буду описывать это больше, потому что мне нужно будет написать очень длинный урок. Пожалуйста, приготовьтесь к учебному пособию по C# и читайте дополнительно о methodscalling methods и using variables.

+0

Спасибо. Это решило мое сомнение. Я обязательно вернусь, как только я получу репутацию :). Это отличный ответ. И я найду учебник. – Aksh

0

Вы бы вызвать метод MapFinder() внутри MapTracker()

public string MapFinder() 
{ 
    if ((Map.Width == 8 && Map.Height == 8)) 
    { 
     return "DefaultMap"; 
    } 
    return "Something Different"; 
} 

public string MapTracker() 
{ 
     // call the method, include the "()" 
     if(MapFinder() == "DefaultMap"); 
     { 
       return "Hello DefaultMap"; 
     } 

     return "Hello StrangeMap"; 
}    
+0

'if (MapFinder() ==" DefaultMap ");' - следить за точкой с запятой. – quetzalcoatl

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