我想找C#default关键字,e.g相当于:

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

由于

有帮助吗?

解决方案

我发现这个在博客中:“这是什么C#代码的样子像F#(第一部分:表达式和语句)?

  

C#有所谓的“默认”的操作员   返回零初始化   给定类型的值:

default(int) 
     

它具有有限的效用;最常见的你可以使用   默认(T)在一个通用的。 F#有   类似的结构作为一个库   功能:

Unchecked.defaultof<int>

其他提示

从技术上讲F#函数Unchecked.defaultof<'a>是等效于C#中的default运算符。但是,我认为这是值得一提的是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