2011-12-15 2 views
1

C# 코드 내부에서 F # 맵에 액세스 할 수있는 간단한 방법이 있습니까?C# 코드 내부에서 F # 맵 액세스

C# 코드와 F #리스트 모두 열거 할 수 있으므로이 post에서 설명한 것처럼 인터페이스를 통해 C# 코드 내부에서 F #리스트를 반복 할 수 있습니다.

나는 F 번호 모듈 내부의 이러한지도를 선언 한 것으로 가정 해 보겠습니다라고 module.fs :

이 내가 C#을 내부에서이 방법을지도에 액세스하려는

let MyMap : Map<string,T>> 
:

Map m = module.MyMap; 

이 가능 전환을 수행하지 않고 이와 같은 작업을 수행 하시겠습니까?

답변

4

Map은 F # 외부에서 액세스 할 때 FSharpMap이라고합니다. 어색한 형식 이름 (예를 들어)을 피하려면 var을 사용할 수 있습니다. 그러나 대부분의 F # 관련 유형은 언어 경계에서 잘 작동하는 인터페이스를 구현합니다. 예를 들어, MapIDictionary<_,_>을 구현합니다. F # 외부에서 사용될 API에서 권장되는 해결 방법은 대신 해당 인터페이스를 노출하는 것입니다.

자세한 내용은 Component Design Guidelines을 확인하십시오.

그런데, 당신은 아무 문제없이 C#에서 FSharpMap 사용할 수 있습니다. 이상하게 보이고 관용적 인 C# 코드에는 적합하지 않습니다.

관련 문제