我有以下代码
class clazz
{
constructor {:axiom} () requires true
method su(x: int, y:int) returns (r: int)
{
r := x + y;
}
}
method {:main} Main() {
var c := new clazz();
var s := c.su(2,3);
print(s);
}如何使用clazz类?这是具体的错误:
error CS1061: Type `__default.ClassRoomExample' does not contain a definition for `__ctor'and no extension method `__ctor' of type `__default.ClassRoomExample' could be found. Are you missing an assembly reference?
发布于 2018-12-04 03:11:32
我刚刚弄明白了问题所在。构造函数中缺少{ }。太傻了。
发布于 2018-12-05 02:51:51
通常,Dafny编译器会抱怨你声明了一些没有主体的东西,在本例中是一个没有主体的构造函数。但是您已经用{:axiom}标记了您的构造函数,这会告诉编译器您故意遗漏了主体。这就是为什么您看到的错误来自C#编译器,而不是Dafny编译器。
{:axiom}属性并不常见,它是为无主体的引理设计的。如果您确实希望省略构造函数或方法的代码,则可能需要使用:extern属性,该属性允许您在另一种.NET语言中实现该方法。
https://stackoverflow.com/questions/53600268
复制相似问题