だから私はいくつかのフレームワーク2.0コードをReflectorしていますが、次の分解になります
fixed (void* voidRef3 = ((void*) &_someMember))
{
...
}
これは ' The right hand side of a fixed statement assignment may not be a cast expression' のためコンパイルされません
Reflector は概算しかできないことを理解しており、通常は明確なパスを確認できますが、これは私の経験から少し外れています。
質問: Reflector は私に何を説明しようとしていますか?
アップデート:
以下も見ています
fixed (IntPtr* ptrRef3 = ((IntPtr*) &this._someMember))
アップデート:
したがって、Mitch が言うように、これはビット単位の演算子ではなく、addressOf 演算子です。
質問は次のとおりです。
fixed (IntPtr* ptrRef3 = &_someMember)
Cannot implicitly convert type 'xxx*' to 'System.IntPtr*'. An explicit conversion exists (are you missing a cast?)' ' コンパイル エラーで失敗します。
だから私はそうするならのろわれ、そうしなければのろわれたように見えました。何か案は?
アップデート:
私はそれを考え出したと思います。たまたま、使用していた式に戻ってvoid*キャストを削除すると、VS は文句を言うのをやめました。この会話の参加者から同等のものを集めたので、void*単純intptr*にそれらを交換した結果、次のようになりました。
fixed (void* ptrRef3 = &_someMember)
そしてVSは不平を言うのをやめました。誰かがそれを確認できますか
fixed (void* ptrRef3 = &_someMember)
と同等です
fixed (IntPtr* ptrRef3 = &_someMember)
?