I have 2 structs in C language:
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#代码?
char
转换为C#时要小心,它们可能具有不同的含义。在C#中,char
实际上表示Unicode字符。那么m_Down
到底是什么? - Dirkm_Down->m_Blocks[0][1] == *m_Down
对我来说看起来很奇怪,除非有一个重载的运算符。 - Ken Kinm_Down->m_Blocks[0][1]
是char
类型,而*m_Down
是CSide
类型。 - Zach Johnson