在FSharp.Core.dll(4.0.30319.1)中,我找到HasCustomAttribute了值为19的标记.在ECMA-335中未指定此值.ECMA-335(第II部分,24.2.6)仅描述0到18之间的值.
有人知道什么是有价值的意思吗?
更新:
好像tag(19)指定的那样GenericParamTable.
Core.EqualityConditionalOnAttributeClass
Collections.Map<'Key,'Value>Class
但第6版Reflector不显示FSharp.Core.Collections.FSharpMap类型的泛型参数的属性.
更新2:
问题已经结束.在第5版ECMA-335中回答.(我使用了第4版).
首先,我使用模板创建了一个双向链表.我有一个"帐户"类,我已经重载了"=="运算符来比较帐户ID.我创建了一个链接列表来保存帐户.
当我向列表中添加一个新帐户时,它会调用"包含?" 调用==运算符的方法.这是调用错误的地方,g ++告诉我
sll.h:在成员函数'bool list :: contains(T)[with T = account]'中:
customer.h:25:35:从这里实例化
sll.h:261:3:错误:'temp-> node :: data == item'中'operator =='不匹配
account.h:36:6:注意:候选人是:bool account :: operator ==(account&)
我现在一直在调查几个小时,我无法深究它.我怀疑它可能与我使用模板这一事实有关.我创建了测试程序,看看我是否正确地重载了操作符并且它按预期工作.
另请注意:有一个客户类,它包含在帐户列表中,这就是所谓的"添加"方法.不幸的是,我不能发布超过2个超链接,所以我只能说出这个课程是正确的.= P
由于代码有点长,我使用了pastie:
我有一个简单的项目,我收到了数以千计的错误,很可能是因为一些UWP/.NET Core依赖问题.project.json文件非常简单:
{
"dependencies": {
"Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
"Newtonsoft.Json": "8.0.3"
},
"frameworks": {
"uap10.0": {}
},
"runtimes": {
"win10-arm": {},
"win10-arm-aot": {},
"win10-x86": {},
"win10-x86-aot": {},
"win10-x64": {},
"win10-x64-aot": {}
}
}
Run Code Online (Sandbox Code Playgroud)
这些都是我得到 的错误:http://pastebin.com/WwPKzCgK错误示例:
Version conflict detected for System.Collections.
WebServer (? 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (? 5.0.0) -> Microsoft.NETCore.Runtime (? 1.0.0) -> Microsoft.NETCore.Runtime.CoreCLR-arm (? 1.0.0) -> System.Collections (= 4.0.10)
WebServer (? 1.0.0) -> Microsoft.NETCore.UniversalWindowsPlatform (? 5.0.0) -> Microsoft.NETCore (? 5.0.0) -> System.Collections (? 4.0.10).
Version conflict detected for …Run Code Online (Sandbox Code Playgroud) 几个快速问题.我有一个DMX王USB照明控制器,我正试图控制.
它基于Open DMX协议(来自Entec),提供ac#class.我已经将设备插入RGB设备,如果我用他们的驱动程序测试USB设备,它连接到COM4,当我将他们的软件切换到发送模式时,我可以设置单独的DMX通道.
使用他们的OpenDMX类,进行一些修改(核心是相同的,我刚刚添加了一些额外的错误检查,我可以找到设备,查询它的信息等.当我打开设备时,我得到一个句柄.我可以写使用FT_Write到那个设备但不管我做什么,实际上没有灯亮起来.
以下是一些相关的代码片段:
public static byte[] buffer;
[DllImport("FTD2XX.dll")]
public static extern FT_STATUS FT_Open(UInt32 uiPort, ref uint ftHandle);
[DllImport("FTD2XX.dll")]
public static extern FT_STATUS FT_Write(uint ftHandle, IntPtr lpBuffer, UInt32 dwBytesToRead, ref UInt32 lpdwBytesWritten);
public static void writeData()
{
while (!done)
{
try
{
initOpenDMX();
status = FT_SetBreakOn(handle);
status = FT_SetBreakOff(handle);
bytesWritten = write(handle, buffer, buffer.Length);
if (bytesWritten == 0)
{
break;
}
System.Threading.Thread.Sleep(25);
}
catch (Exception)
{
break;
}
}
Connected = false;
done = false;
}
Run Code Online (Sandbox Code Playgroud)
所有状态都以FT_Ok的形式返回,bytesWritten返回为512(此USB控制器上的通道数)
我一直在想我错过了将设备设置为传输模式或类似的设备(它只有一个DMX插槽)
public …Run Code Online (Sandbox Code Playgroud) 在我的Akka.Net集群中,我有几个节点.当我成功加入群集时,我想要启动通信.我可以在日志中看到我欢迎来到集群:
Welcome from [akka.tcp://Animatroller@hakan-el:8899]
Run Code Online (Sandbox Code Playgroud)
但我看不到任何我可以订阅的事件.