드롭 다운 레이블에서 ByRef 및 ByVal을 참조하는 방법은 무엇입니까? [닫은]


9

MSDN의 페이지 ByRefByVal키워드는 매우 도움이되지 않습니다; 내가 어떻게 든 건너 뛰지 않는 한, 그들은 단순히 어디에서나 "키워드"라고 불립니다.

의 주요 공헌자 중 하나 Rubberduck의 프로젝트는 매우 냉각에 노력하고 캡슐화 필드 리팩토링, 나는의 드롭 위의 라벨에 문제가 제외 UI는 .. 꽤 잘 따라오고있다 ByRef/ ByVal"접근성"라고하는을 :

Rubberduck의 "Encapsulate Field"리팩토링 대화 상자

더 정확하다고 느끼는 Public/ Private/ Friend액세스 수정자를 위해 다른 곳에서 사용하기 때문에 "접근성"을 좋아하지 않습니다 .

IMO는 "access modifier"의 줄임말이기 때문에 "Modifier"를 사용하고 싶지 않습니다.

해당 라벨이 정확하기를 원하지만 어휘에 문제가있는 것 같으며이 키워드를 무엇이라고해야할지 모르겠습니다.

이 라벨이 정확히 말해야하는 것은 무엇입니까? 내가 찾고있는 단어는 무엇입니까? "키워드의 가족은"무엇을 ByRef/ ByVal에 속해?


2
의견 중 하나에서 알 수 있듯이 전혀 존재하지 않아야합니다. 속성에 대한 ByRef는 약간 미쳤습니다. 가능하다면 악의적입니다. 알지 못하는 사람의 변수를 변경할 수 있습니다.
jmoreno

"VB 유니버스"(특히 VBA가 아님)의 많은 문서는이를 "통과 메커니즘"이라고합니다.
Damien_The_Unbeliever

@jmoreno 동의합니다. 생성 된 코드를 수동으로 편집하고 "문제 해결"이외의 방법으로 ByVal변경할 수 없게 만들 것입니다 ByRef! VBA는 당신이 알고있는 악마의 말도 안되는 엄청난 양의를 컴파일 할 수 있습니다 :-) 아직도 내가 있다는 걸 좋아하는 마지막 장소 온라인으로 이들 키워드에 대한 풋 옵션의 이름을 입력합니다.
Mathieu Guindon

답변:


14

이 경우 "Pass As"(또는 "Pass")를 사용합니다.

이 사용법과 완벽하게 일치하는 흐름이 있습니다.

  • 변수 이름 : foo
  • 패스 : ByVal / 패스 : ByRef

이것은 워크 플로에 완벽하게 맞고 우연히 참조하는 기사가 나타내는 것입니다.

옵션을 읽을 때 'Pass As'를 사용하면 제목을 읽고 " 'Variable name'foo, 'Pass As'value"라는 텍스트를 적절하게 선택할 수 있으므로 'Pass As'를 사용할 때 완벽하게 읽습니다.

당신이 약간 더 읽을 수 있도록 원한다면 귀하의 타겟 고객은 VBA 프로그래머 또는 될 수있는 비 VBA 프로그래머 인 경우 당신은 "가치"와 "참조가"에 따라 목록 옵션을 만들 수있는 약간 ByVal로와하는 ByRef 키워드 익숙하지.

또는 "Pass :"로 변경하고 드롭 다운에서 "Py Reference (ByRef)"및 "ByVal (ByVal)"로 변경하십시오. 드롭 다운에이 텍스트를 모두 표시 할 공간이있는 것 같습니다. 또는 ByRef / ByVal 키워드 만 있습니다.


"Pass as ByVal"또는 "Pass by Value"를 사용하고 싶습니다 . "Pass by ByVal"이 이상하게 들립니다.
user253751

@immibis 좋은 전화!
enderland

3
또한 선택 항목이 거의없는 경우 드롭 다운 대신 라디오 버튼을 고려할 수 있습니다.
Kyralessa

@Kyralessa 그것은 내가 채팅에서 Mat에게 정확히 말한 것입니다. 그리고 나는 그들이 최종 디자인을 위해 함께 갔다고 생각합니다 :-)
enderland

5

이 3 가지 용어 중 하나를 사용하여 해당 항목을 선택하는 드롭 다운에 레이블을 지정합니다.

  1. 의미론
  2. 지나가 다
  3. 매개 변수 수정 자

나는 "의미"좋아
마티유 Guindon를

"매개 변수 수정 자"를 좋아합니다.

3

"Pass By Semantics"는 아마도 당신이 찾고있는 것에 가장 가깝습니다.


나의 빠른 배달 모자를 훔치는 argh! 에 빌빌!
Jimmy Hoffa

2
나는 이미 하나, 당신에게 이것을 줄 행복 ...
Oded

3

이에 대한 가장 정확하고 공식적인 용어는 "Aliasing semantics"입니다.

경우 ByRef중 하나에 대한 모든 변경 다른 즉시 볼 수 있습니다 - 사용되는 함수 내부의 이름은 호출자의 변수에 대한 별칭이다. 로 ByVal함수 내부의 이름은 호출자 변수의 고유 한 사본입니다 (물론, 호출자와 함수의 사본은 모두 동일한 오브젝트를 참조 할 수 있지만 함수 내부의 매개 변수를 다시 지정해도 호출자의 변수가 재 지정되지 않는다는 점에서 구별됩니다) ).

옵션은

  • 별명 ( ByRef)
  • 복사 ( ByVal)

일부 플랫폼은 호출자 변수의 앨리어싱이 수행되지만 겹치는 객체의 앨리어싱을 위해 둘 이상의 매개 변수가 허용되지 않는 세 번째 가능성을 추가합니다. (C restrict키워드 의 아이디어 는 IDL에서 키워드 키워드를 찾는 것입니다 unique). .NET은이 지식을 인코딩하는 좋은 방법이 없습니다.


-1

나는 이것을 "[인수] 범주"라고 부릅니다.

인수에는 이름, 유형 및 카테고리가 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.