对于我们来说,同一个可枚举的多次枚举是一个性能问题,所以我们尝试在代码中踩踏这些警告.但是我们有一个泛型扩展函数用于抛出生成大量这些警告的空参数异常.它的签名如下:
public static void VerifyArgumentIsNotNull<T>(this T value, string valueName) where T : class
Run Code Online (Sandbox Code Playgroud)
它所做的只是检查null并抛出一个格式良好的本地化(对于当时正在播放的人类语言)异常.
当此函数用于IEnumerable参数时,它会使代码分析警告IEnumerable可能的多次迭代,因为分析器不知道该函数的作用.
我想在这个函数上添加一些标记,"是的,这会将可枚举作为输入,但它不会迭代它,因此不应被调用者视为可能的迭代." 有没有这样的标签?我在互联网上搜索无济于事.