c# - 无法在 web api 中返回字典的默认值
问题描述
在我的WEB API
我试图返回我的字典变量的默认值,以便我可以处理任何异常/错误。
Dictionary<string, string> dict = new Dictionary<string, string>();
var error = "06";
string key = "default";
try
{
var serialPort = new SerialPort("COM2", 9600, Parity.Even, 8, StopBits.One);
//serial port settings and opening it
serialPort.Open();
var stream = new SerialStream(serialPort);
stream.ReadTimeout = 2000;
// send request and waiting for response
// the request needs: slaveId, dataAddress, registerCount
var responseBytes = stream.RequestFunc3(slaveId, dataAddress, registerCount);
// extract the content part (the most important in the response)
var data = responseBytes.ToResponseFunc3().Data;
var finalData = floatArray(data);
//var result = data.Where(r => r > 0).Select(r => r.ToString()).ToArray();
dict = finalData.Select((b, i) => (value: b, index: i)) // convert bytes to sequence of (byte value, index)
.ToDictionary(x => x.index.ToString(), x => x.value.ToString());
serialPort.Close();
return dict;
}
catch (Exception ex)
{
return dict.TryGetValue(key, out error);
}
我正在使用客户端发送错误消息,以便我可以验证我的try..catch
. 但是我无法为我的dict
变量设置默认值,因为我遇到了错误
无法将类型“bool”隐式转换为“System.Collections.Generic.Dictionary”
我怎样才能实现它?任何帮助将不胜感激。
解决方案
TryGetValue:获取Value
并Key
返回 abool
,您可以更改catch
,如以下代码:
try
{
...
}
catch (Exception ex)
{
dict.Add(key, error);
return dict;
}
我希望这会有所帮助。
推荐阅读
- node.js - Error NodeJs - React Login / 401 Unauthorized
- java - glDrawElementsInstanced: VertexAttribute mat4 not applied per instance
- vba - VBA Access: declaring Public Type inside a class
- ruby-on-rails - 打开电子邮件中的链接时如何显示带有警报的模式(Rails6+Bootstrap4)
- crystal-reports-2011 - Crystal Report 循环直到 True 和返回值
- c - volatile 数组上的并发更改是否对所有线程都是原子的且可见的?
- python-3.x - 如何使用通配符在使用 python 的 Outlook 中查找电子邮件?
- c# - 我需要序列化它以保存到文件吗?
- network-programming - 我可以删除 .p4 程序中的数据包负载吗?
- mysql - MYSQL 查询一直超时