直接上程式,程式很簡單,問題出在紅色字體處
結果只輸出stringTest,沒有輸出enumeratorTest,不知為什么,請高人指點,小弟多謝!!!!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections ;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
new test();
Console.ReadLine();
}
}
class test
{
private IEnumerator enumeratorTest;
private string stringTest;
public test ()
{
enumeratorTest = EnumeratorTest();
stringTest = StringTest();
}
private IEnumerator EnumeratorTest()
{
Console.WriteLine("enumeratorTest");
yield return "1";
}
private string StringTest()
{
Console.WriteLine("stringTest");
return "2";
}
}
}
uj5u.com熱心網友回復:
寫了另一段小程式繼續測驗,代碼如下:除錯發現,回傳列舉器的函式在呼叫的時候并不會執行,而是在使用MoveNext函式迭代回傳的列舉器時才會執行
執行結果如圖
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Collections ;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
test t = new test();
Console.WriteLine("********************");
Console.WriteLine(t.enumeratorTest.MoveNext());
Console.WriteLine(t.enumeratorTest.Current);
Console.WriteLine(t.enumeratorTest.MoveNext());
Console.WriteLine(t.enumeratorTest.Current);
Console.WriteLine(t.enumeratorTest.MoveNext());
Console.WriteLine(t.enumeratorTest.Current);
Console.WriteLine(t.enumeratorTest.MoveNext());
Console.ReadLine();
}
}
class test
{
public IEnumerator enumeratorTest;
private string stringTest;
public test ()
{
enumeratorTest = EnumeratorTest();
stringTest = StringTest();
}
private IEnumerator EnumeratorTest()
{
Console.WriteLine("enumeratorTest-A");
yield return "A";
Console.WriteLine("enumeratorTest-B");
yield return "B";
Console.WriteLine("enumeratorTest-C");
yield return "C";
Console.WriteLine("enumeratorTest-D");
}
public string StringTest()
{
Console.WriteLine("stringTest");
return "0";
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/282053.html
標籤:C#
上一篇:C#WebApi同一個介面同一個會話會呼叫多次,如何判斷是否是會話重復請求
下一篇:C#,WPF
