숫자를 나타내는 BigNumDesc라는 클래스를 사용하고 있습니다. 그 수의 들쭉날쭉 한 배열이 매트릭스를 나타냅니다. 내가 먼저이 행렬을 다음과 같은 방법을 선언딥 복사 참조 유형
static BigNumDec[][] GetStrictlyUpperTriangle(BigNumDec[][] matrix)
{
BigNumDec[][] newMatrix = new BigNumDec[matrix.Length][];
matrix.CopyTo(newMatrix, 0);
return null;
}
내가 마지막 줄에 중단 점을 가지고
BigNumDec[][] matrix = new BigNumDec[][] {
new BigNumDec[] { 1, 2 },
new BigNumDec[] { 3, 4 }
};
지금, 내가 전화 할이 방법을 가지고있다. 조사 식 창에서 행렬의 항목을 가져 와서 변경하면 newMatrix도 변경됩니다. 모든 BigNumDec은 참조 유형입니다 (작성자의 잘못된 설계 결정). 이것을 어떻게 할 수 있습니까? newMatrix를 수정해야하므로 먼저 매트릭스에서 복사해야합니다.
편집 : int와 동일하게 시도했지만, 이제는 똑같은 일이 발생합니다. 가치 유형으로는 그런 일이 일어나지 않겠습니까?
BigNumDec은 변경 불가능합니다.
int는 잘 작동합니다. BigNumDec과 잘 작동합니까? 나는 안된다고. –
작동하는 것 같습니다. 이제 혼란스러워. –
가능하다면 왜 불변인지 아닌지를 설명해 주시겠습니까? 값을 변경하고 싶다는 것을 감지하면 새로운 값을 생성합니까? –