您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

构造函数可以异步吗?

构造函数可以异步吗?

构造函数的行为与返回构造类型的方法非常相似。而且asyncmethod不能返回任何类型,它必须是“ fire and忘记” voidTask

我认为,如果类型的构造函数T实际返回了Task<T>,那将非常令人困惑。

如果异步构造函数的行为与方法相同,则将async void破坏构造函数的含义。构造函数返回后,您应该获得一个完全初始化的对象。不是将来会在某个不确定的位置正确初始化的对象。也就是说,如果您很幸运并且异步初始化不会失败。

所有这些只是一个猜测。但是在我看来,异步构造函数的可能性带来的麻烦多于其价值。

如果您确实想要方法的“即弃即用”语义async void(如果可能,应避免使用),则可以轻松地将所有代码封装在async void方法中,并从构造函数调用它,如您在问题中提到的那样。

其他 2022/1/1 18:15:26 有298人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶