我得到 6 作为空白 CD 的状态结果

本文关键字:CD 状态 结果 空白 | 更新日期: 2023-09-27 18:32:09

我不知道

为什么当我在刻录机中插入空白介质时,结果是 6。据我了解,IMAPI_FORMAT2_DATA_MEDIA_STATE枚举的状态中没有 6 .

下面是一个包含此状态和我基于的示例的链接:MSDN:检查媒体支持。

var state = dataWriter.CurrentMediaStatus;                        
Debug.WriteLine((int)state); // outputs 6

我得到 6 作为空白 CD 的状态结果

它是两者的组合,基本上是对两个(或更多值)计算按位运算的。当您使用属性 Flags 创建枚举时,您可以对其执行按位操作,即使它应该在没有属性的情况下工作

IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE

带有 IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE 的"OR"操作的 IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK 值将给出 6在 C# 中,值 = 2 |4;

如果您想测试该值是否包含某个选项,要走得更远,您可以继续执行类似操作

if ((value & IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK) == IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK)
{
//IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK is contained
}

您可以在此处阅读有关按位操作的更多信息

它相当于一个可标记的枚举。 6 是 4 + 2,所以状态是

IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE