DoStuffOnlyOnceAsync我必须尝试调用 using的非静态方法AsyncLazy,但出现错误。
如何调用非静态方法?
字段初始值设定项不能引用非静态字段、方法或属性“TestClass.DoStuffOnlyOnceAsync()”
using System;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace Registry
{
public class AsyncLazy<T> : Lazy<Task<T>>
{
public AsyncLazy(Func<T> valueFactory) : base(() => Task.Run(valueFactory)) { }
public AsyncLazy(Func<Task<T>> taskFactory) : base(() => Task.Run(() => taskFactory())) { }
public TaskAwaiter<T> GetAwaiter() { return Value.GetAwaiter(); }
}
public class TestClass
{
private AsyncLazy<bool> asyncLazy = new AsyncLazy<bool>(async () =>
{
await DoStuffOnlyOnceAsync();
return true;
});
public TestClass() { }
public async Task DoStuffOnlyOnceAsync()
{
await Task.FromResult(false);
}
}
}
SMILET
相关分类