【问题标题】:How to call a method in a method?如何在方法中调用方法?
【发布时间】:2015-05-17 21:55:58
【问题描述】:

这里我试图从方法MapFinder()返回一个字符串,并使用从方法返回的字符串在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";
    }

【问题讨论】:

  • 试试这个if(StringFromMapFinder == MapFinder())
  • 你为什么投反对票?这个问题对 C# 专家来说是微不足道的,但请注意:(1) 问题标题正确 (2) 提供了作者尝试的可读代码 (3) 尝试在文本中清晰准确地描述。那么,为什么要投反对票?
  • @quetzalcoatl 通过谷歌搜索“C#调用方法”非常容易找到这个问题的答案 - OP 在问这个问题之前可能没有做任何研究 - 我认为这就是它的原因被否决
  • hm..这样看,无法反驳。

标签: c# methods


【解决方案1】:

您几乎可以完全按照您的描述进行操作,只是缺少一些位。经过一些最小的修复后,您的代码将是:

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而不是)
  • 修正了错字:你在奇异地图中有一个未闭合的引号"
  • 我已将StringFromMapFinder 替换为方法调用

但是,通常情况下,您更愿意将该调用的结果存储在某处,然后再进行检查:

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

在这里,我创建了一个名为mapFinderResult 的变量,我调用了该方法并将结果存储在该变量中,然后在if 中我使用该变量来检查返回的内容。这个更长的版本和之前的版本一样,只是结果存储在变量中,而不是直接在if条件中使用。

我不会再描述它了,因为我需要写一个很长的课程。请获取一些 C# 教程并进一步了解 methods calling methodsusing variables

【讨论】:

    【解决方案2】:

    你可以在MapTracker()中调用MapFinder()方法

    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";
    }               
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-05
      • 1970-01-01
      • 2021-11-14
      • 2021-05-13
      • 2014-08-19
      相关资源
      最近更新 更多