CA1814: 다차원 배열보다 가변 배열을 사용하십시오.
속성 | 값 |
---|---|
규칙 ID | CA1814 |
제목 | 다차원 배열보다 가변 배열을 사용하세요. |
범주 | 성능 |
수정 사항이 주요 변경인지 여부 | 주요 변경 |
.NET 9에서 기본적으로 사용 | 아니요 |
원인
멤버가 다차원 배열로 선언되어 일부 데이터 세트의 공간이 낭비될 수 있습니다.
규칙 설명
다차원 배열에서 각 차원의 각 요소는 해당 차원의 다른 요소와 동일한 고정 크기를 갖습니다. 배열의 배열인 가변 배열에서 각 내부 배열은 크기가 다를 수 있습니다. 지정된 배열에 필요한 공간만 사용하면 공간이 낭비되지 않습니다. 규칙 CA1814는 가변 배열로 전환하여 메모리를 절약할 것을 권장합니다.
위반 문제를 해결하는 방법
이 규칙의 위반 문제를 해결하려면 다차원 배열을 가변 배열로 변경합니다.
경고를 표시하지 않는 경우
다차원 배열이 공간을 낭비하지 않는 경우 이 규칙의 경고를 표시하지 않아도 됩니다.
경고 표시 안 함
단일 위반만 표시하지 않으려면 원본 파일에 전처리기 지시문을 추가하여 규칙을 사용하지 않도록 설정한 후 다시 사용하도록 설정합니다.
#pragma warning disable CA1814
// The code that's violating the rule is on this line.
#pragma warning restore CA1814
파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면 none
에서 심각도를 으로 설정합니다.
[*.{cs,vb}]
dotnet_diagnostic.CA1814.severity = none
자세한 내용은 방법: 코드 분석 경고 표시 안 함을 참조하세요.
예시
다음 예제에서는 가변 배열과 다차원 배열에 대한 선언을 보여 줍니다.
Imports System
Public Class ArrayHolder
Private jaggedArray As Integer()() = {New Integer() {1, 2, 3, 4}, _
New Integer() {5, 6, 7}, _
New Integer() {8}, _
New Integer() {9}}
Private multiDimArray As Integer(,) = {{1, 2, 3, 4}, _
{5, 6, 7, 0}, _
{8, 0, 0, 0}, _
{9, 0, 0, 0}}
End Class
public class ArrayHolder
{
int[][] jaggedArray = { new int[] {1,2,3,4},
new int[] {5,6,7},
new int[] {8},
new int[] {9}
};
int[,] multiDimArray = {{1,2,3,4},
{5,6,7,0},
{8,0,0,0},
{9,0,0,0}
};
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET