struct THFI_Param
{
int nMinFaceSize;
int nRollAngle;
bool bOnlyDetect;
DWORD dwReserved;
THFI_Param()
{
nMinFaceSize=50;
nRollAngle=30;
bOnlyDetect=false;
dwReserved=NULL;
}
};
public class THFI_Param {
public int nMinFaceSize { get; set; }
public int nRollAngle { get; set; }
public bool bOnlyDetect { get; set; }
public uint? dwReserved { get; set; }
public THFI_Param() {
this.nMinFaceSize = 50;
this.nRollAngle = 30;
this.bOnlyDetect = false;
this.dwReserved = null;
}
}
struct 改 class
属性前加 public
直接改成你的C#类不就完了?
class THFI_Param
{
int nMinFaceSize;
int nRollAngle;
bool bOnlyDetect;
DWORD dwReserved;
public THFI_Param()
{
nMinFaceSize = 50;
nRollAngle = 30;
bOnlyDetect = false;
dwReserved = NULL;
}
};
把struct理解为类,在C#中定义定义就可以
其实在c++本身,你也可以吧struct当做类理解,一般struct是用于纯数据(不会带其他的一些操作函数)
c#语法上和c++比较类似
[StructLayout(LayoutKind.Sequential)]
public struct ControllerState
{
// Common
public int handle;
public int timestamp;
public int frameCount;
public int state_mask;
// Gamepad
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
public float[] axes;
public int buttons;
// Motion
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public float[] position;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
public float[] rotation;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public float[] accelerometer;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
public float[] gyroscope;
}
对照下以上的