我有一个任务要在NodeJ中重写C#代码。不幸的是,在该功能中有一些令人讨厌的oneliners,我不完全了解。
代码
<mat-form-field>
<input matInput [(ngModel)]="value" name="input" #input="ngModel" name="test"
required placeholder="im invalid">
</mat-form-field>
问题
我可以看到有多个分配,但是我不确定这些变量应该具有什么值。
有人可以解释这个oneliner和/或将其重写为更简单的C#代码段吗?
答案 0 :(得分:4)
基本上与
相同int b = byteBuffer.ReadByte();
int sign = (b >> 6) & 1;
int i = b & 0x3F;
int offset = 6;
详细信息:
在原始行中,每个顶级,
都会拆分声明:
int b, sign = ((b = byteBuffer.ReadByte()) >> 6) & 1, i = b & 0x3F, offset = 6;
^here ^here ^ here
然后您会遇到一个棘手的问题:
int b;
int sign = ((b = byteBuffer.ReadByte()) >> 6) & 1;
// ...
实际上首先将B定义为没有初始值,但是接下来的表达式立即将'ReadByte'的结果分配给B作为第一个子操作,因此实际上与从B初始化B相同。开始,然后您得到我在第一个代码段中写的内容。