동일한 유형의 여러 선택적 입력 매개 변수를 사용할 수있는 코드화 된 UI에서 메서드를 작성하고 있습니다. 제 질문은 그러한 방법을 쓰는 가장 좋은 방법입니다. (인터넷의 여러 곳에서 제안되는) 메소드 오버로딩이나 명명 된 매개 변수와 선택적 매개 변수 조합을 사용해야하는지 여부.
코딩 된 UI : 동일한 데이터 형식의 여러 선택적 매개 변수가있는 메서드를 작성하는 가장 좋은 방법은 무엇입니까
이름 : 문자열 : 필수
나이 : 문자열 : 필수
위치 : 문자열 : 옵션
확인란 가입하기 : 선택
체크 박스의 경우 이 방법은 실제로 아래의 필드에 값을 입력하려고 확인 : 아래 입력란에 자세한 내용을 입력하십시오.
명명 된 인수와 선택적 매개 변수의 조합을 사용하는 경우 메서드 정의의 매개 변수 목록이 길어 보이며 여러 가지 옵션을 전달하거나 건너 뛰는 경우 메서드의 오버로드가 쉽고 확실하지 않은지 잘 모르겠습니다. 매개 변수를 사용하면 목적을 해결할 수 있습니다. 나는 C# 코딩에 익숙하지 않으므로 모든 포인터를 매우 높이 평가합니다.
내 제안은 서로 다른 유형의 정보를 둘러싼 래퍼로 작동 할 수있는 몇 가지 클래스를 만드는 것입니다. 당신은 특히 모든 매개 변수가 동일한 유형을 가지고 있다고 언급했습니다 - 그러나 모든 매개 변수가 다른 목적을 가지고 있다고 확신합니다. 그걸 기반으로 개체를 구축하십시오. 예를 들어,'checkbox'가 선택되면,'NewAccount' 객체를 전달하여 그 정보를 저장할 수 있습니다. 'Name','age','location'은 모두'Person' 객체의 일부가 될 수 있습니다. 이렇게하면 메서드 서명이 간단 해지고 코드를 더 정확하게 유지할 수 있습니다. –
Richard에게 감사드립니다. 나는 같은 종류의 필드에 대한 래퍼로 클래스를 생성 한 다음 클래스 객체를 전달하는 것이 깔끔한 방법 일 것이라고 동의합니다. 그러나 내 방법은 어느 매개 변수를 선택적 필드에 넣을 지 어떻게 알 수 있습니까? 예 : 이메일, 성별, 주문 유형 등 3 개의 선택 입력란이 있고 전자 메일, 주문 유형 만 전달하려는 경우 어떻게 내 방법에서이를 이해할 수 있습니까? – user5252179
래퍼 객체에 필드가 있다면, 전자 메일이라고 말하면 그 필드는 null입니다. 왜냐하면 당신이 그것을주지 않았기 때문에 결코 필드를 설정하지 않았기 때문에, 당신의 메소드는 그것에 대해 걱정하지 않는다는 것을 알고 있습니다. 요점은 객체가 필요한 값의 컨테이너라는 것입니다. 값이 설정되지 않았다면 거기에 없으므로 신경 쓰지 않아도됩니다. 필요한 변수가 아니라면 예외를 throw하고 사용자에게 필드가 필요하다고 알려야합니다. –