我一直在寻找这一点,但我还没有得到任何有关它的信息!
我看了很多关于“收益回报”的视频和红色文章,我想我对此有了更好的理解,但有一点我无法理解
我应该使用yield return 的正确接口是什么?(当然Yield返回会在Loop中使用但在哪个接口中)。
我的意思是这一点有所不同,我看到有些人在 中创建了一个“迭代器”IEnumerator,例如:
static string[] Names = { "Name1", "Name2", "Name3" };
static IEnumerator Test()
{
for (int i = 0; i < Names.Length; i++)
{
yield return Names[i];
}
}
Run Code Online (Sandbox Code Playgroud)
和其他一些人使用IEnumerable:
static IEnumerable Test()
{
for (int i = 0; i < Names.Length; i++)
{
yield return Names[i];
}
}
Run Code Online (Sandbox Code Playgroud)
我假设最好在IEnumerable接口中使用“Yield return”创建一个“迭代器”,因为一般来说 IEnumerable 负责访问该类(更准确地说,它返回一个类(对象)的实例)迭代的逻辑。在这种情况下,编译器到底发生了什么(yield 关键字的糖)。
private static IEnumerable Test() => new <Test>d__1(-2);
//decompiled code of Test() method above …Run Code Online (Sandbox Code Playgroud) 在Microsoft C#的文档中说
要更改特定日期和时间字符串的时间分隔符,请在文字字符串分隔符中指定分隔符.例如,自定义格式字符串
hh'_'dd'_'ss生成一个结果字符串,其中"_"(下划线)始终用作时间分隔符.
在我的代码中,我尝试使用分隔符为Date,有两种方式有和没有Apostrophe如图所示,但结果对于两个输出都是相同的!
随着撇号
var __Date = new DateTime(1998, 07, 8, 07, 5, 1).ToString("yyyy'-'MM'-'dd hh':'mm':'ss");
Run Code Online (Sandbox Code Playgroud)
输出为:1998-07-08 07:05:01
没有撇号
var _Date = new DateTime(1998,07,8,07,5,1).ToString("yyyy-MM-dd hh:mm:ss");
Run Code Online (Sandbox Code Playgroud)
输出为:1998-07-08 07:05:01
有人可以告诉我在文档中日期分隔符中Apostrophe的目的是什么?