문제

나는 C#과 동등한 것을 찾고 있습니다. default 키워드, 예를 들어 :

public T GetNext()
{
    T temp = default(T);
            ...

감사

도움이 되었습니까?

해결책

블로그에서 이것을 찾았습니다. "이 C# 코드는 F#에서 어떤 모습입니까? (1 부 : 표현 및 진술)"

C#에는 주어진 유형의 제로 시작 값을 반환하는 "Default"라는 연산자가 있습니다.

default(int) 

유틸리티가 제한되어 있습니다. 가장 일반적으로 일반적인 기본값 (t)을 사용할 수 있습니다. F#은 라이브러리 기능과 유사한 구성을 가지고 있습니다.

Unchecked.defaultof<int>

다른 팁

기술적으로 F# 기능을 사용합니다 Unchecked.defaultof<'a> 와 동일합니다 default C#의 연산자. 그러나 나는 그것이 주목할 가치가 있다고 생각합니다 defaultof 로 간주됩니다 위험한 F#의 물건은 실제로 필요한 경우에만 사용해야합니다 (사용하는 것처럼 null, F#에서도 낙담합니다.

대부분의 상황에서 defaultof 사용함으로써 option<'a> 유형. 값을 아직 사용할 수 없다는 사실을 나타낼 수 있습니다.

그러나 다음은 아이디어를 보여주는 간단한 예입니다. 다음 C# 코드 :

T temp = default(T);
// Code that may call: temp = foo()
if (temp == default(T)) temp = bar(arg)
return temp;

아마도 F# (명령 적 기능 사용)에서 다음과 같이 쓰여질 것입니다.

let temp = ref None
// Code that may call: temp := Some(foo())
match !temp with 
| None -> bar(arg)
| Some(temp) -> temp

물론 이것은 특정 시나리오에 따라 다르며 경우에 따라 defaultof 당신이 할 수있는 유일한 일입니다. 그러나 나는 단지 그것을 지적하고 싶었다 defaultof F#에서 덜 자주 사용됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top