Di WEB API saya, saya mencoba mengembalikan nilai default variabel kamus saya sehingga saya dapat menangani pengecualian/kesalahan apa pun.

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);
        }

Saya menggunakan klien untuk mengirim pesan kesalahan sehingga saya dapat memverifikasi try..catch saya. Tetapi saya tidak dapat menetapkan nilai default ke variabel dict saya karena saya mendapatkan kesalahan di bawah ini

Tidak dapat secara implisit mengonversi tipe 'bool' menjadi 'System.Collections.Generic.Dictionary'

Bagaimana saya bisa mencapainya? Bantuan apa pun akan sangat dihargai.

0
Moeez 17 April 2020, 19:28

1 menjawab

Jawaban Terbaik

TryGetValue : Dapatkan Value dengan Key dan kembalikan bool, Anda dapat mengubah catch, seperti kode berikut:

try
{
...
}
catch (Exception ex)
{
    dict.Add(key, error);
    return dict;
}

Saya harap ini membantu.

1
Mohammed Sajid 17 April 2020, 16:34