c# - 字段初始化不能引用非静态字段?如何解决它?
问题描述
我指的是 [C# concurrency in action] 一书中的一些代码,该章有以下代码片段:
int _v1;
readonly Lazy<int> Myv1 = new Lazy<int>(() => _v1++);//error
void UseV1()
{
Console.WriteLine(Myv1.Value);
}
int _v2;
readonly Lazy<Task<int>> Myv2 = new Lazy<Task<int>>(async () =>//error
{
await Task.Delay(2).ConfigureAwait(false);
return _v2++;
});
它不编译,说
error CS0236: A field initializer cannot reference the non-static field, method, or property 'Program._v1'
为什么会发生此规则,如何解决或解决此问题?非常感谢。
解决方案
推荐阅读
- r - 多条件变异
- laravel - 图像不显示在 Mac 上
- python - 被网吃了吗?本站下爬虫生存使用python
- azure-active-directory - 未为用户分配许可证时的 Azure Active Directory B2B 成本
- python - 如何在网站上实现用户输入以转到特定网站进行抓取
- c++ - C++ 覆盖虚拟模板化方法
- android - 卸载应用程序时未删除数据文件夹
- lambda - 从 Twilio SMS 服务检测 Lex/Lambda 中的电话号码
- java - JTree,优化算法,Java
- azure - 如何配置 Azure AAD Connect 以与 OpenLDAP 同步