Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.6k views
in Technique[技术] by (71.8m points)

c# - Getting Infinite Loop Issue. Process Terminated due to StackOverflowException?

namespace ConsoleApplication1
{

class class1
{
    protected internal string inf1()
    {
        Console.WriteLine("
......inf1() 
");

        return inf1();
    }
}




class class2 :class1
{
    static void Main(string[] args)
    {
        class1 c1 = new class1();

        class2 c2 = new class2();

        Console.WriteLine(c1.inf1());

        Console.WriteLine(c2.inf1());

        Console.ReadKey();
    }
}

Getting Infinite Loop Issue. Process Terminated due to StackOverflowException ?

How to prevent the code from looping infinitely ?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

In class2, you are calling Console.WriteLine(c1.inf1());.

So class1.inf1 should return a string as you are trying to output it to the console.

However, class1.inf1() recursively calls itself with no exit and does not return a string.

So I think this may be what you are trying to accomplish:

protected internal string inf1()
{
    return "
......inf1() 
";
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...