사용자 지정 클래스 목록에서 동일한 클래스 형식 목록을 사용할 수 있습니까?

njw

DataGridView에 실행 취소 기능을 추가하려고합니다.

셀을 하나씩 처리하는 기능을 구현했지만 큰 셀을 실행 취소하는 기능은 구현하지 않았습니다.

public class UndoBuffer
{
    public string undoCell { get; set; }
    public int rowIndex { get; set; }
    public int colIndex { get; set; }
}

이것은 문제의 코드입니다.

처음 실행하면 클래스 유형의 목록이 선언되고 셀 편집 시작 및 종료시 이전 값, 행, 열이 순차적으로 저장됩니다.

그러나 삭제, 붙여 넣기 또는 바꾸기와 같은 작업을 수행 한 후 코드가 제대로 작동하지 않습니다.

그래서 큰 셀을 처리 할 때 사용할 목록을 클래스에 추가하려고했습니다.

이렇게

 public class UndoBuffer
{
    public string undoCell { get; set; }
    public int rowIndex { get; set; }
    public int colIndex { get; set; }

    public List<UndoBuffer> bufferArray = new List<UndoBuffer>();  //Added Code
}

선언하는 데 문제가 없었지만 사용하려고 할 때 문법 오류가 발생했습니다.

버퍼 스택에 하나씩 할당 할 때이 코드를 작성했습니다.

 private List<UndoBuffer> undoBuffers = new List<UndoBuffer>(); //Declare CustomList
 ...
 ...
 undoBuffers.Add(new UndoBuffer() { undoCell = beginEditCell, rowIndex = e.RowIndex, colIndex = e.ColumnIndex }); 

그리고이 코드는 버퍼 스택에 많은 수의 셀을 할당하는 데 사용되었습니다.

List<UndoBuffer> undobuffer = new List<UndoBuffer>();

List<UndoBuffer> array = new List<UndoBuffer>();
array.Add(new UndoBuffer()
{
     undoCell = "BeginCell",
     rowIndex = 33,
     colIndex = 2
});
array.Add(new UndoBuffer()
{
     undoCell = "BeginCell",
     rowIndex = 34,
     colIndex = 3
});

**undobuffer.Add(new UndoBuffer() {bufferArray.AddRange(array) });** // Grammar error code

문법 오류가 아닌 잘못된 방향으로 코딩하고 있습니까?

제발, 조언을 주시면 감사하겠습니다.

고마워

올리비에 로지에

유형의 개체의 새 인스턴스를 만들 때 멤버를 초기화하는 동안 전체 문으로 실행되는 명령을 가질 수 없습니다. 메서드 나 람다에 대한 호출을 사용하더라도 할당 만 할 수 있으므로 함수 는 결과를 반환합니다. 여기서는 단지 프로 시저 호출이므로 아무것도 반환하지 않습니다.

따라서 전체 목록을 대체하지 않고 범위를 추가 할 수 있으려면 항목을 분리하고 다음을 작성해야합니다.

var buffer = new UndoBuffer();
buffer.bufferArray.AddRange(array);
undobuffer.Add(buffer);

또한 복합bufferArray것처럼 보이 므로 public 인 경우 get 전용 속성 이거나 선언시 또는 생성자에서 초기화 되는 readonly private 또는 protected 필드 여야합니다 .

public List<UndoBuffer> bufferArray { get; } = new List<UndoBuffer>();

다음과 같이 더 표준적이고 관련성이 높으며 깔끔하게 이름 지정을 개선하는 것이 좋습니다.

public class UndoBuffer
{
    public string UndoCellText { get; set; }
    public int RowIndex { get; set; }
    public int ColIndex { get; set; }

    public List<UndoBuffer> Buffers { get; } = new List<UndoBuffer>();
}

C # 코딩 규칙 (C # 프로그래밍 가이드)

C # 명명 규칙

C # 코딩 표준 및 명명 규칙

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

C #의 두 가지 다른 클래스에서 동일한 열거 형을 사용할 수 있습니까?

분류에서Dev

C #의 부모 클래스 목록에서 지정된 자식 클래스를 찾을 수 있습니까?

분류에서Dev

클래스에서 동일한 mapedBy 이름을 사용할 수 있습니까?

분류에서Dev

클래스에서 제네릭 형식을 목록으로 사용하는 방법이 있습니까?

분류에서Dev

C # 목록에서 사용자 지정 클래스 사용

분류에서Dev

데이터는 AsynTask 클래스의 사용자 지정 목록보기에 도달 할 수 없습니다.

분류에서Dev

Android에서 목록보기를 사용하지 않고 일부 텍스트 데이터를 목록 형식으로 표시 할 수 있습니까?

분류에서Dev

Android에서 목록보기를 사용하지 않고 일부 텍스트 데이터를 목록 형식으로 표시 할 수 있습니까?

분류에서Dev

Android에서 목록보기를 사용하지 않고 일부 텍스트 데이터를 목록 형식으로 표시 할 수 있습니까?

분류에서Dev

함수에서 사용할 수 있도록 클래스의 목록 초기화

분류에서Dev

유형 쌍 목록의 벡터 크기를 클래스에서 사용자가 지정한 크기로 설정

분류에서Dev

Java Spring Boot 프로젝트의 application.yml 파일에서 사용자 정의 클래스 목록을 읽을 수 없습니다.

분류에서Dev

클래스 템플릿과 무관 한 클래스에서 '사용'을 할 수 있습니까?

분류에서Dev

Silex의 사용자 정의 클래스에서 $ app을 어떻게 사용할 수 있습니까?

분류에서Dev

지도 목록을 내 사용자 지정 클래스 목록에 매핑하려면 어떻게합니까?

분류에서Dev

인수로 사용되는 keras 클래스에 대해 사용 가능한 문자열 약어 목록을 어떻게 찾을 수 있습니까?

분류에서Dev

이 사용자 지정 C ++ 목록 클래스에 제거 함수를 어떻게 구현할 수 있습니까?

분류에서Dev

동일한 클래스의 두 메서드에서 @GET 주석을 사용할 수 있습니까?

분류에서Dev

Entity Framework-여러 클래스가 동일한 클래스 유형의 항목 목록을 갖도록 허용

분류에서Dev

주입 된 클래스 이름을 friend 선언에서 형식 이름으로 사용할 수 있습니까?

분류에서Dev

ByteBuddy에서 클래스를 서브 클래 싱 할 때 새 동적 클래스가 수퍼 클래스와 동일한 클래스 수준 수정자를 사용합니까?

분류에서Dev

내 클래스 C #에서 Length 속성을 사용할 수 있도록 설정

분류에서Dev

laravel의 사용자 정의 클래스에서 호출 할 때 클래스를 찾을 수 없습니다.

분류에서Dev

OSX Lion : "클래식"마우스 휠 스크롤을 사용하면서 "자연스러운"트랙 패드 스크롤을 유지할 수 있습니까?

분류에서Dev

확장 클래스가 수퍼 함수에 특정 클래스를 사용하도록 지시 할 수 있습니까?

분류에서Dev

이 중첩 된 클래스 생성자 스 니펫을 일반 클래스에 적용 할 수 있습니까?

분류에서Dev

MaterialUI에서 스타일이 지정된 구성 요소에 사용자 정의 클래스 이름 생성기를 사용할 수 있습니까?

분류에서Dev

자바 스크립트 "클래스"정의에 setInterval을 사용할 수 있습니까?

분류에서Dev

사용자 지정 클래스를 LINQ 쿼리에 사용할 수 있도록 만들기

Related 관련 기사

  1. 1

    C #의 두 가지 다른 클래스에서 동일한 열거 형을 사용할 수 있습니까?

  2. 2

    C #의 부모 클래스 목록에서 지정된 자식 클래스를 찾을 수 있습니까?

  3. 3

    클래스에서 동일한 mapedBy 이름을 사용할 수 있습니까?

  4. 4

    클래스에서 제네릭 형식을 목록으로 사용하는 방법이 있습니까?

  5. 5

    C # 목록에서 사용자 지정 클래스 사용

  6. 6

    데이터는 AsynTask 클래스의 사용자 지정 목록보기에 도달 할 수 없습니다.

  7. 7

    Android에서 목록보기를 사용하지 않고 일부 텍스트 데이터를 목록 형식으로 표시 할 수 있습니까?

  8. 8

    Android에서 목록보기를 사용하지 않고 일부 텍스트 데이터를 목록 형식으로 표시 할 수 있습니까?

  9. 9

    Android에서 목록보기를 사용하지 않고 일부 텍스트 데이터를 목록 형식으로 표시 할 수 있습니까?

  10. 10

    함수에서 사용할 수 있도록 클래스의 목록 초기화

  11. 11

    유형 쌍 목록의 벡터 크기를 클래스에서 사용자가 지정한 크기로 설정

  12. 12

    Java Spring Boot 프로젝트의 application.yml 파일에서 사용자 정의 클래스 목록을 읽을 수 없습니다.

  13. 13

    클래스 템플릿과 무관 한 클래스에서 '사용'을 할 수 있습니까?

  14. 14

    Silex의 사용자 정의 클래스에서 $ app을 어떻게 사용할 수 있습니까?

  15. 15

    지도 목록을 내 사용자 지정 클래스 목록에 매핑하려면 어떻게합니까?

  16. 16

    인수로 사용되는 keras 클래스에 대해 사용 가능한 문자열 약어 목록을 어떻게 찾을 수 있습니까?

  17. 17

    이 사용자 지정 C ++ 목록 클래스에 제거 함수를 어떻게 구현할 수 있습니까?

  18. 18

    동일한 클래스의 두 메서드에서 @GET 주석을 사용할 수 있습니까?

  19. 19

    Entity Framework-여러 클래스가 동일한 클래스 유형의 항목 목록을 갖도록 허용

  20. 20

    주입 된 클래스 이름을 friend 선언에서 형식 이름으로 사용할 수 있습니까?

  21. 21

    ByteBuddy에서 클래스를 서브 클래 싱 할 때 새 동적 클래스가 수퍼 클래스와 동일한 클래스 수준 수정자를 사용합니까?

  22. 22

    내 클래스 C #에서 Length 속성을 사용할 수 있도록 설정

  23. 23

    laravel의 사용자 정의 클래스에서 호출 할 때 클래스를 찾을 수 없습니다.

  24. 24

    OSX Lion : "클래식"마우스 휠 스크롤을 사용하면서 "자연스러운"트랙 패드 스크롤을 유지할 수 있습니까?

  25. 25

    확장 클래스가 수퍼 함수에 특정 클래스를 사용하도록 지시 할 수 있습니까?

  26. 26

    이 중첩 된 클래스 생성자 스 니펫을 일반 클래스에 적용 할 수 있습니까?

  27. 27

    MaterialUI에서 스타일이 지정된 구성 요소에 사용자 정의 클래스 이름 생성기를 사용할 수 있습니까?

  28. 28

    자바 스크립트 "클래스"정의에 setInterval을 사용할 수 있습니까?

  29. 29

    사용자 지정 클래스를 LINQ 쿼리에 사용할 수 있도록 만들기

뜨겁다태그

보관