前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CA1825:避免数组分配长度为零

CA1825:避免数组分配长度为零

作者头像
用户4268038
发布2022-02-19 18:42:35
4000
发布2022-02-19 18:42:35
举报
文章被收录于专栏:stcnbstcnb

规则 ID

CA1825

类别

“性能”

修复是中断修复还是非中断修复

非中断

原因

分配了一个不包含任何元素的空 Array。

规则说明

初始化长度为零的数组将导致不必要的内存分配。 请改为通过调用 Array.Empty 方法来使用静态分配的空数组实例。 内存分配在此方法的所有调用之间共享。

如何解决冲突

若要解决冲突,请将长度为零的数组分配替换为对 Array.Empty 的调用。 例如,以下两个代码片段显示了规则冲突及其解决方法:

class C

{

public void M1()

{

// Violates rule CA1825.

var a = new int[0];

}

}

class C

{

public void M1()

{

// Resolves rule CA1825 violation.

var a = System.Array.Empty<int>();

}

}

提示

Visual Studio 中为此规则提供了代码修补程序。 若要使用该修补程序,请将光标置于数组分配上,然后按 Ctrl+. (句点)。 从显示的选项列表中选择“使用 Array.Empty”。

何时禁止显示警告

如果不在乎额外的内存分配,可禁止显示此规则的冲突。

相关规则

CA1814:与多维数组相比,首选使用交错数组

另请参阅

性能规则

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档