我正在通过ILSPY VideoFileWriter从AForge.Video.FFMPEG汇编中读取类(我有兴趣了解特定方法是如何工作的)并且发现了这个:
public bool IsOpen {
[return: MarshalAs(UnmanagedType.U1)]
get {
return ((this.data != null) ? 1 : 0) != 0;
}
}
Run Code Online (Sandbox Code Playgroud)
是什么原因让bool变成整数而不是回到bool转换this.data != null呢?
Sco*_*ain 10
它是反编译代码,很可能只是反编译器的一个小故障.
在考虑一下之后,这是一个合理的实现,可能会转向相同的编译代码
public enum ConnectionState
{
Closed = 0,
Open = 1,
Opening = 2,
OtherStuff = 3,
AndSoOn = 4,
}
public bool IsOpen
{
get
{
ConnectionState state;
if (this.data != null)
{
state = ConnectionState.Open;
}
else
{
state = ConnectionState.Closed;
}
return state != ConnectionState.Closed;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |