Function 无法将函数转换为委托

Function 无法将函数转换为委托,function,delegates,d,Function,Delegates,D,我有这个功能 private ulong Html(ubyte[] data) { return data.length; } 我想使用函数将其转换为委托。我试过: client.onReceive = toDelegate(&Html); 但我收到一条错误信息: lixo.d(722): Error: not a property client.onReceive /home/$/D/libs/arsd/dom.d(743): Warning: statement

我有这个功能

 private ulong Html(ubyte[] data)
  {
    return data.length;
  }
我想使用函数将其转换为委托。我试过:

client.onReceive = toDelegate(&Html);
但我收到一条错误信息:

lixo.d(722): Error: not a property client.onReceive
/home/$/D/libs/arsd/dom.d(743): Warning: statement is not reachable
/usr/include/d/dmd/phobos/std/range.d(595): Error: static assert  "Cannot put a dchar[] into a Appender!(char[])"
/usr/include/d/dmd/phobos/std/format.d(1758):        instantiated from here: put!(Appender!(char[]),dchar[])
/usr/include/d/dmd/phobos/std/format.d(1514):        instantiated from here: formatRange!(Appender!(char[]),dchar[],char)
/usr/include/d/dmd/phobos/std/conv.d(101):        instantiated from here: formatValue!(Appender!(char[]),dchar[],char)
/usr/include/d/dmd/phobos/std/conv.d(757):        ... (1 instantiations, -v to show) ...
/usr/include/d/dmd/phobos/std/conv.d(244):        instantiated from here: toImpl!(char[],dchar[])
/home/$/libs/arsd/dom.d(2115):        instantiated from here: to!(dchar[])

如何修复此问题?

我猜/home/$/D/libs/arsd/dom.D库有一个名为“Html”的结构或类。尝试将“Html”函数重命名为其他函数,看看是否有帮助

如果仍然不起作用,您可能必须向我们展示更多代码,因为您的示例对我来说似乎很好:


我以前也见过类似的错误。由于某些原因,自DMD2.060以来,即使真正的错误与此无关,not a属性错误也经常发生。

我猜/home/$/D/libs/arsd/dom.D库中有一个名为“Html”的结构或类。尝试将“Html”函数重命名为其他函数,看看是否有帮助

如果仍然不起作用,您可能必须向我们展示更多代码,因为您的示例对我来说似乎很好:


我以前也见过类似的错误。由于某些原因,自dmd 2.060以来,即使实际错误与此无关,也经常出现not a属性错误。

错误不是将函数转换为委托,而是将其分配给client.onReceive。onReceive是如何定义的?客户端是HTTP结构的实例。事实上,如果我这样做:client.onReceive=ubyte[]data{return data.length;},它就可以正常工作。可能是dmd错误?长度为类型大小\u t。也许你因此得到了一些错误/警告?发布你的编译器版本和更完整的代码列表会很有用。我无法在dmd 2.060上本地重新创建此错误。错误不是将函数转换为委托,而是将其分配给client.onReceive。onReceive是如何定义的?客户端是HTTP结构的实例。事实上,如果我这样做:client.onReceive=ubyte[]data{return data.length;},它就可以正常工作。可能是dmd错误?长度为类型大小\u t。也许你因此得到了一些错误/警告?发布你的编译器版本和更完整的代码列表会很有用。我无法在dmd 2.060上本地重新创建此错误。