Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# F#实现基类_C#_F#_Base Class - Fatal编程技术网

C# F#实现基类

C# F#实现基类,c#,f#,base-class,C#,F#,Base Class,我是F#新手,我想创建一个F#Forms应用程序。但我目前的问题是,我不知道如何实现基类。在C#中,我会这样做 namespace Test_Form { public class Form1 : Form { public Form1() { } } } 但我如何在F#中创建表单,使其成为模块而不是类型 我已经试过了 open System open System.Windows.Forms type Form1()

我是F#新手,我想创建一个F#Forms应用程序。但我目前的问题是,我不知道如何实现基类。在C#中,我会这样做

namespace Test_Form
{
    public class Form1 : Form
    {
        public Form1()
        {

        }
    }
}
但我如何在F#中创建表单,使其成为模块而不是类型

我已经试过了

open System
open System.Windows.Forms

type Form1() = 
    inherit Form()
但这将导致

public class Form1 : Form
{
    public Form1() : this()
    {
    }
}

在这里,您将使用C中的构造函数方法#

在F中引用

do bindings部分包括要在对象上执行的代码 建筑

你会的

type Form1() =
    inherit Form()

    do // stuff
例如:

type Form1() as this =
    inherit Form()

    do this.Click.Add(fun args -> printfn "%s" <| args.ToString())
键入Form1(),如下所示=
继承表单()

执行此操作。单击。添加(fun args->printfn“%s”)您的最后一个代码段与第一个代码段完全相同。有什么问题吗?我无法访问此代码段。控件或类似的内容在F#中,它表示“未定义名称空间或模块”。Q(主题外):为什么不是WPF?@Silent3241你应该在问题中提到这个问题。你知道,我们无法理解思想。但是我如何访问它。*因为当我像你的代码一样尝试时,我仍然会收到错误消息“名称空间或模块”this“未定义”@Silent3241你需要将
type Form1()=
更改为
type Form1()如下所示=
type Form1() as this =
    inherit Form()

    do this.Click.Add(fun args -> printfn "%s" <| args.ToString())