저는 C#에서 여러 가지 유틸리티, 재사용 가능한 함수를 계속 작성합니다. 많은 함수는 out 또는 ref 매개 변수를 사용하는 여러 값을 반환합니다. 많은 기능에는 추가 정보가있어 일부 발신자 (일부 발신자는 사용할 수 없음)에게 유용 할 수 있습니다.함수에서 여러 개의 선택적 값을 반환하는 디자인 또는 코드 패턴
예를 들어 CSV 파일을 읽는 기능에는 no와 같은 추가 정보가있을 수 있습니다. 빈 줄, 아니. 중복 값이있는 행 및 기타 통계를 표시합니다.
추가 정보는 등의 경고 메시지를 포함 할 수
아니 모든 호출자는이 정보에 관심이있을 것이다, 그래서 나는 할 모든 이들과 같은 아웃, 심판 또는 튜플을 포함하지 않을 호출자가 이러한 모든 예상 변수를 선언해야합니다.
난 그냥 발신자가 선택하거나 관심 옵션 추가 정보의 일부를 검색 할 수 있도록, 호출자가 사용할 수있는 추가 정보를 만들 수있는 방법이 있는지 파악하고 싶었다. 예를 들어Func 1은 Func B를 호출 할 수 있습니다. 호출 한 후 모든 표준 반환 값을 가져옵니다. 또한 FuncB를 다시 실행하지 않고도 FuncB.GetAdditionalInfo (infoType)와 같은 것을 호출 할 수 있습니까?
중개자 역할을하는 클래스를 사용하여 모든 옵션 값을 저장 한 다음 요청시 발신자에게 반환 할 수도 있습니다. 하지만 필자는 모든 유틸리티 기능에서 사용할 수있을만큼 일반화되기를 원합니다.
호출기가 필요에 따라 액세스 할 수있는 일종의 전역 변수에 이러한 모든 것을 저장하는 Func B가 한 가지 가능성이 있습니다. 그러나 유틸리티 클래스에 이러한 재개 가능한 함수가 여러 개 있으면 각 함수의 추가 정보를 위해 많은 공용 변수가 필요합니다!
현재 .NET 4.5 버전입니다. 이것을위한 디자인 패턴이 있습니까? F #에 좋은 해결책이 있는지 알고 싶습니다.
또한이 작업을 수행하기 위해 너무 많은 오버로드 된 버전을 피하려고합니다. 감사합니다. .
일부 메타 데이터 개념에 데이터를 저장할 수 있습니다. 키 - 값 사전 일뿐입니다. – Michael
그래, 가능하다면 매번 호출자의 값을 캐스팅하지 않아도되고 싶다. – AllSolutions
그리고 관심이없는 경우이 메타 데이터를 호출자에게 옵션으로 지정하려면 어떻게해야합니까? – AllSolutions