C# 调用Gmail API创建过滤器时FilterAction报空引用异常如何解决
错误原因
你遇到的空引用异常是因为FilterAction类的AddLabelIds属性默认值为null,没有初始化对应的集合实例。你使用的AddLabelIds = {labelId}集合初始化语法,本质是对已存在的集合实例调用Add方法添加元素,而非创建新的集合实例,所以操作null对象会抛出异常。
修复代码
修改FilterAction的初始化逻辑,显式为AddLabelIds创建新的集合实例即可:
FilterAction action = new FilterAction { AddLabelIds = new List<string> { labelId } };
可选优化
为了避免获取标签时API异常返回null导致后续报错,可以增加一层空值校验:
var gotLabel = getLabel.Execute(); if (gotLabel == null) { Console.WriteLine("未查询到目标标签,请检查输入的标签ID是否正确"); Console.Read(); return; } var labelId = gotLabel.Id;
内容的提问来源于stack exchange,提问作者Zoi K.
相关产品推荐
相关产品推荐

