我如何从主类内部的int方法获取返回值

时间:2018-12-13 15:30:41

标签: c# .net console-application

我是C#的新手。我想显示我的MyApp方法的返回值。

    public int MyApp(string strFirst, string strSecond)
    {
        if (strFirst.Equals(strSecond))
        {
            return 0;
        }

        for (int i = 0; i < strFirst.Length; i++)
        {
            string temp = strFirst.Substring(0, strFirst.Length - 1);
            temp = strFirst[strFirst.Length - 1] + temp;
            strFirst = temp;
            if (strFirst.Equals(strSecond))
            {
                return i + 1;
            }
        }
        return -1;
    }

4 个答案:

答案 0 :(得分:3)

如果您不致电Console.WriteLine(),则不会在控制台上打印任何内容。
也是这样:

Console.WriteLine(calc.MyApp("try", "yrt"));

我们通常使用描述性动词来命名方法-因此您的MyApp应该变成Calculate。 而类别应该以名词命名-因此您的Calculate应该成为MyApp。 这样,您的代码更具表现力:

var app = new MyApp();
Console.WriteLine(app.Calculate("try", "yrt"));

答案 1 :(得分:0)

您可以使用此:

class Program
{
    static void Main(string[] args)
    {
        Calculate calc = new Calculate();

        int result = calc.MyApp("try", "yrt");
        Console.WriteLine(result);
    }
}

答案 2 :(得分:0)

问题出在这条线上:

calc.MyApp("try", "yrt");

您正在调用MyApp方法,但没有存储或使用结果。

如果要将结果用于其他用途,则将结果存储在变量中很有用:

//Store the result
var result = calc.MyApp("try", "yrt");
//Display the result
Console.Writeline(result);

您也可以只将表达式(对方法MyApp的调用)作为参数传递给Writeline方法:

Console.Writeline(calc.MyApp("try", "yrt"));

运行时将执行对您的方法的调用,并将结果用作对方法Writeline的调用的参数。

这两种方法均有效。如果您刚刚入门,我个人建议使用变量。内联调用可以节省空间并且可以提高性能,但也会使调试更加困难。

答案 3 :(得分:0)

如果您使用Console.WriteLine(),并且它始终返回-1,那么您的问题不应该出在MyApp()方法中的代码上。

真正的问题是,您正在旋转第一根弦,而没有将其转过来。 因此,如果您的第一个字符串是“ hello”,而第二个字符串是“ olleh”,则对于每个迭代,您将获得以下第一个字符串:

  1. lohel
  2. llohe
  3. 你好
  4. 你好

您将永远不会得到“ olleh”