我得到一张空白 CD 的状态结果为 6
I get 6 as State result for a blank CD
我不知道为什么当我在刻录机中插入空白介质时结果为 6。据我了解,在 IMAPI_FORMAT2_DATA_MEDIA_STATE
.
的枚举状态中没有 6
这是一个 link,其中包含此状态和我基于的示例:MSDN:Checking Media Support。
var state = dataWriter.CurrentMediaStatus;
Debug.WriteLine((int)state); // outputs 6
它相当于一个可标记的枚举。 6是4+2,所以状态是both
IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE
是两者的结合,基本上是对这两个(或更多的值)进行按位运算。
当您使用属性 Flags
创建枚举时,您可以对其进行按位运算,即使它在没有属性
的情况下也能正常工作
IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE
IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK 与 IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE 的 'OR' 运算的值将给出 6
在 C# 中它将是 value = 2 | 4;
如果您想进一步测试该值是否包含某个选项,您可以继续做类似这样的事情
if ((value & IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK) == IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK)
{
//IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK is contained
}
您可以阅读有关按位运算的更多信息here
我不知道为什么当我在刻录机中插入空白介质时结果为 6。据我了解,在 IMAPI_FORMAT2_DATA_MEDIA_STATE
.
这是一个 link,其中包含此状态和我基于的示例:MSDN:Checking Media Support。
var state = dataWriter.CurrentMediaStatus;
Debug.WriteLine((int)state); // outputs 6
它相当于一个可标记的枚举。 6是4+2,所以状态是both
IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE
是两者的结合,基本上是对这两个(或更多的值)进行按位运算。
当您使用属性 Flags
创建枚举时,您可以对其进行按位运算,即使它在没有属性
IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK
IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE
IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK 与 IMAPI_FORMAT2_DATA_MEDIA_STATE_APPENDABLE 的 'OR' 运算的值将给出 6 在 C# 中它将是 value = 2 | 4;
如果您想进一步测试该值是否包含某个选项,您可以继续做类似这样的事情
if ((value & IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK) == IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK)
{
//IMAPI_FORMAT2_DATA_MEDIA_STATE_BLANK is contained
}
您可以阅读有关按位运算的更多信息here