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
Types 如何使用F#语法将类型作为属性参数传递?_Types_F#_Nunit_Custom Attributes_Fscheck - Fatal编程技术网

Types 如何使用F#语法将类型作为属性参数传递?

Types 如何使用F#语法将类型作为属性参数传递?,types,f#,nunit,custom-attributes,fscheck,Types,F#,Nunit,Custom Attributes,Fscheck,FsCheck允许在其NUnit集成中自定义任意: [<Property(Verbose = true, Arbitrary= [typeof<Test.Arithmetic.MyArb>])>] static member MultiplyIdentity (x: int64) = x * 1 = x [] 静态成员多重身份(x:int64)=x*1=x 这种语法不起作用。我觉得有点不好意思问,但显然我以前从未需要过这个:如何将F#中的类型指定为属性参数?微软也不

FsCheck允许在其NUnit集成中自定义
任意

[<Property(Verbose = true, Arbitrary= [typeof<Test.Arithmetic.MyArb>])>]
static member  MultiplyIdentity (x: int64) = x * 1 = x
[]
静态成员多重身份(x:int64)=x*1=x
这种语法不起作用。我觉得有点不好意思问,但显然我以前从未需要过这个:如何将F#中的类型指定为属性参数?微软也不例外,我和微软在谷歌上搜索这个词时也遇到了一些麻烦(单词类型无处不在)


注1:
任意
参数的类型为
类型[]

我认为您很接近,但是
[1;2;3]
创建了一个
列表
,您需要使用
[|1;2;3 |]
的数组文字:

[<Property(Verbose = true, Arbitrary= [| typeof<Test.Arithmetic.MyArb> |])>]
static member  MultiplyIdentity (x: int64) = x * 1 = x
[]
静态成员多重身份(x:int64)=x*1=x

是的,我在写问题时没有注意我的列表语法。当然,您是正确的,但实际上我的重点是获取
类型
,复制您的语法仍然会引发“这不是有效的常量表达式或自定义属性值”错误。你能重新编程吗?或者这个语法对你有用吗?在这里有用:我的错。第一个错误被F#中的工具提示错误隐藏,是“类型‘MyArb’未定义”我有
Tests.算术.MyArb
,它存在,但显然当使用
typeof
时,您不能使用FQN???不管怎样,当我将它简化为
typeof
时,它“刚刚工作”。被我自己的愚蠢所愚弄;)。实际上,FQN通常不适用于引用位于同一命名空间中的类型。这是一个有趣的发现。我认为这是因为编译器试图从自己的名称空间中解析名称(即,它尝试
Test.Test.算术.MyArb
)。但是我希望前缀
global
会起作用(它不会)。我打开了一个问题: