我正在通过将C#中的程序转换为F#
来学习F#问题在于WritableBitmap,编译器抱怨说:
The type tableBitmap is not defined
这是代码:
module MandelbrotBitmap
open System.Windows.Media
open System.Windows.Media.Imaging
type Mandelbrot(width:int) as this =
let mutable _width = width
let mutable _height = 10
let mutable bitmap = new WritableBitmap( _width, _heights, 96.0, 96.0,
PixelFormats.Bgr32, None)
member this.Width
with get() = _width
and set(newVal) = _width <- newVal
实例中的None
是我尝试替换原始表达式中的null
。
我的参考资料中有PresentationCore
和WindowsBase
。
bitmap = new WriteableBitmap(
(int)sizeInfo.NewSize.Width,
(int)sizeInfo.NewSize.Height,
96, 96, PixelFormats.Bgr32, null);
中描述了WriteableBitmap
我的问题是; 编译器抱怨什么?
答案 0 :(得分:7)
你有两个错别字:WritableBitmap应该是 WriteableBitmap ,而_heights应该是_ height 。此外,null
和None
不可互换,当您经常使用.NET框架类时,必须使用null
,这是F#的互操作功能。最后一个问题,如果你想在WriteableBitmap构造函数中的行之间拆分你的参数,你需要确保下一行的缩进比new
更远,因为空格在F#中很重要。这是最终的,固定的WriteableBitmap构造函数调用:
new WriteableBitmap( _width, _height, 96.0, 96.0,
PixelFormats.Bgr32, null)
答案 1 :(得分:2)
这只是一个错字:
let mutable bitmap = new WriteableBitmap( _width, _heights, 96.0, 96.0,
PixelFormats.Bgr32, None)
答案 2 :(得分:2)
您的代码中存在少量拼写错误: WriteableBitmap 和_ 高度