怪异的C#声明变量

Cyb*_*urk 1 c# variables declaration conditional-operator

我正在制作一些软件,通​​过我PC上的COM端口与某些电子设备进行串行通信.我必须与之前没有使用的SimplicTI协议进行通信.我找到了一个可以让我进行交流的库,但是由于我想成为一名程序员,我想了解这个库的每一个语句.在库的源代码中,我偶然发现了以下变量声明:

byte len = (data == null) ? (byte)0 : (byte)data.Length
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?我似乎无法掌握这一说法.

顺便说一下,变量"data"是一个字节数组.

MK_*_*Dev 8

相当于:

byte len;

if (data == null)
{
    len = (byte)0;
}
else
{
    len = (byte)data.length;
}
Run Code Online (Sandbox Code Playgroud)

  • 是,如果字节数组为空,则为0. (2认同)