完整的.NET转换运算符列表

时间:2010-07-12 19:35:05

标签: c# .net vb.net f#

有没有人有完整的VB / C#转换运算符列表以及它们的区别?

到目前为止,我知道......

  • 值类型为[C#]
  • TryCast(值,类型)[VB]
  • Convert.ToXxx(value)[any]
  • (类型)值[C#]
  • CType(值,类型)[VB]
  • DirectCast(值,类型)[VB]
  • CXxx(值)[VB]
  • CTypeDynamic [any]
  • 使用Option Strict Off [VB]
  • 时的隐式转换
  • 使用动态[C#]
  • 时的隐式转换
  • 类型值[F#]
  • 产品:> [F#]
  • 产品:>? [F#]

但当然只是知道列表与了解每个列表之间的细微差别是不一样的。

1 个答案:

答案 0 :(得分:4)

对于演员/转换的F#与C#,请参阅

What does this C# code look like in F#? (part one: expressions and statements)

简短讨论数字转换,拳击转换,向上转换和向下转换。

(请注意,您列出

type value

对于F#,我认为你在谈论例如。

int 'a'

但请注意int这里是F#库中函数的名称,而不是类型的名称。查看文档here;通常,每个基本数字类型T都有一个名为T的函数,该函数将其参数转换为同名的目标类型。)

关于F#中的隐式转换:

  • string - > PrintfFormat (作为类型安全printf的魔力的一部分)
  • 方法调用参数和属性/数组赋值中有 upcasts ,可让您执行以下操作:预计f(dog)person.Pet <- dogAnimal。这也适用于集合文字的已知标称类型,例如: let controls : Control list = [button; form; window]
  • 在方法调用参数中有一个函数到委托转换,它可以启用例如new Thread(fun() -> ())其中F#函数转换为ThreadStart委托。
  • 方法调用参数中有 refbyref转化,这使您可以将ref传递给out参数。

我认为就是这样 - 在F#中很少有隐式转换。