簡體   English   中英

將C ++指針結構轉換為C#

[英]Converting C++ pointer struct to C#

我有兩種C語言結構:

struct CSquare
{
    char Side;
    int  Row;
    int  Col;    
};

struct CSide
{
   char     m_Side;           
   char     m_Blocks[3][3];     
   CSquare  *m_Moves;
};

和C ++代碼:

int Count = 0;
int Flag = 0;
if (m_Down->m_Blocks[0][1] == *m_Down)
{
    Count++;
    Flag |= 2;
    // type of m_Down is CSide
}

我正在嘗試將它們轉換為C#:

public class Square
{
    public char Side { get; set; }
    public int Row { get; set; }   
    public int Col { get; set; }
}

public class CubeSide
{
    private char Side { get; set; }
    private char[,] _block = new char[3, 3];
    private Square[] moves;

    public char[,] Block
    {
        get { return _block; }
        set { _block = value; }
    }

    internal Square[] Moves
    {
        get { return moves; }
        set { moves = value; }
    }
}

但我不知道如何轉換線:

if (m_Down->m_Blocks[0][1] == *m_Down)

到C#?

如何將此行轉換為C#?

這條線毫無意義,我猜它總是評價為假。

你可以做的是在該行上設置斷點並執行快速監視,評估* m_Down以確保沒有重載操作符。

然后,評估條件。 根據您的項目類型,將一些printf(“在if中”)/ printf(“在else中”),messagebox或將其寫入文件中。 如果條件求值為true,則打印m_Down-> m_BLocks [0] [1]和* m_Down的值...

確保您首先了解這一行背后的邏輯。 一旦理解了它,就可以很容易地用c#編寫它

PS:在C#中,使用Byte而不是Char

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM