2009-11-05 6 views
3
type IFooable = 
    abstract Foo : int -> int 

type IFooable2 = 
    abstract Foo : a : int -> int 

type MyClass() = 
    interface IFooable2 with 
     member this.Foo(b) = 7 

IFooable과 IFooable2의 차이점은 무엇입니까? 그들은 동등한가? 예제의 경우 목적은 무엇입니까? 그것을 언제 사용합니까?이 두 구문의 차이점

답변

4

IFooable2는 해당 매개 변수의 이름을 지정합니다. IFooable은 그렇지 않습니다.

시스템이 매개 변수 이름에 영향을 줄 때 중요합니다. 예를 들어 ServiceContractAttribute로 표시된 인터페이스 유형으로 WCF를 사용하는 경우 기본적으로 WCF는 인터페이스의 매개 변수 이름을 사용하여 유선 데이터의 XML 프로젝션에 나타나는 이름을 제어합니다.

이 도구도 중요합니다 (예 : C#의 F # 코드 참조). 각 유형의 변수를 선언하고 각 방법에 대한 Intellisense 툴팁을 확인하십시오.

항상 매개 변수 이름을 선언하는 것이 좋습니다 (두 번째 버전 선호).