Marcelo Camargo
Marcelo Camargo

Reputation: 2298

Member with no value in F#

I'm trying to convert the following C# code to F#:

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
private class DOCINFOA
{
    [MarshalAs(UnmanagedType.LPStr)]
    public string nomeDocumento;
    [MarshalAs(UnmanagedType.LPStr)]
    public string arquivoSaida;
    [MarshalAs(UnmanagedType.LPStr)]
    public string tipoDado;
}

I'm doing the following:

namespace Printer
    module RawPrinterHelper =
            [<StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)>]
            type DOCINFOA =
                [<MarshalAs(UnmanagedType.LPStr)>]
                member this.nomeDocumento
                [<MarshalAs(UnmanagedType.LPStr)>]
                member this.arquivoSaida
                [<MarshalAs(UnmanagedType.LPStr)>]
                member this.tipoDado

But I receive: A type definition requires one or more members. Can I let these members empty?

Upvotes: 3

Views: 95

Answers (1)

Lee
Lee

Reputation: 144136

You can use val instead of member:

[<StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)>]
type DOCINFOA =
    [<MarshalAs(UnmanagedType.LPStr)>]
    val nomeDocumento : string
    [<MarshalAs(UnmanagedType.LPStr)>]
    val arquivoSaida : string
    [<MarshalAs(UnmanagedType.LPStr)>]
    val tipoDado : string

Upvotes: 4

Related Questions