.net - 打印枚举时的 ToString 异常

标签 .net f#

鉴于我有一个枚举:

type Cool = A = 'a'
          | B = 'b'

我试着像这样打印
printf "%A" Cool.A

我收到以下异常:

ToString exception: The value passed in must be an enum base or an underlying type for an enum, such as an Int32. Parameter name: value



为什么会发生这种情况以及(如果可能)我如何在枚举级别解决这个问题?

最佳答案

我可以在具有面向 .Net 4.0 的 F# 2.0 编译器的机器上重现此内容,但不能在面向 .Net 3.5 或更低版本的 F# 2 或 VS2012 (F# 3.0) 机器(其中 .Net 4.5 取代 4.0)上重现。

我现在不确定原因,但希望这些信息可以帮助您或其他人缩小范围或找到解决方法。

关于.net - 打印枚举时的 ToString 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12013126/

相关文章:

.net - 您能否限制应用程序可以在 .NET 中使用的处理资源

c# - Log4Net smtp appender 仅在出现完整日志(调试和信息和错误)错误时发送电子邮件。仅当应用程序结束时

f# - 通过翻译 ML 的等效项来使用 F# 实现 take

xml - F# Xml Type Provider 测试节点是否存在

f# - 使用接口(interface)扩展对象的设计替代方案

.net - 如何在 .NET 4 中模拟损坏状态异常?

c# - 单击 setup.exe 时无法获取应用程序启动路径

c# - 将 Java 代码文档转换为 C#

f# - F#语言-新手提示

f# - 在 Windows 8 上的 Xamarin Studio 中构建简单的 F# 项目时出现问题