C# 中?.的语法解释

 /// <summary>
        /// 下载方法
        /// </summary>
        private UpdateWork DownLoad()
        {
            //截取文件名
            //构造文件完全限定名,准备将网络流下载为本地文件
            using (WebClient web = new WebClient())
            {
                foreach (var item in UpdateVerList)
                {
                    try
                    {
                        LogTool.AddLog("更新程序:下载更新包文件" + item.ReleaseVersion);
                        web.DownloadFile(item.ReleaseUrl, tempPath + item.ReleaseVersion + ".zip");
                        OnUpdateProgess?.Invoke(60 / UpdateVerList.Count);
                    }
                    catch (Exception ex)
                    {
                        LogTool.AddLog("更新程序:更新包文件" + item.ReleaseVersion + "下载失败,本次停止更新,异常信息:" + ex.Message);
                        throw ex;
                    }
                }
                return this;
            }
        }

像语句里面的?.的意思是:如果前面的OnUpdateProgess不为空,则执行后面的Invoke,以此类推。

posted @ 2022-04-12 10:07  卑微小老弟  阅读(4310)  评论(0编辑  收藏  举报