unsafe public struct blk
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] // 声明一个字符数组,大小为20
public char[] command;
public int generation;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 20)] // 声明一个字符数组,大小为20
public char[] blkname;
public float rate;
public unsafe fixed float invalue[50];
public unsafe fixed float coefvalue[50];
public unsafe fixed float outvalue[50];
}
6 个解决方案
#1
public blk(float [] s)
{
this.invalue=s;
}
与类查不多
{
this.invalue=s;
}
与类查不多
#2
用 unsafe 和 fixed 就 麻烦了
#3
你说的那个方法可以,请问还有什么好的方法?
#4
初始化成 什么结果啊
#5
我的程序是用c++ 与 c# socket 通信,在c++ 定义了一个结构体, 发送的时候直接发送结构体地址就可以了,而c#中 发送接收都要用 byte[],在网上看了看例子,可以模拟出struct 结构体来,在struct 结构体中必须有构造函数,初始化的值就是接收的数据转化过来的
#6
就 在 结构体的 构造函数里面 初始化
#1
public blk(float [] s)
{
this.invalue=s;
}
与类查不多
{
this.invalue=s;
}
与类查不多
#2
用 unsafe 和 fixed 就 麻烦了
#3
你说的那个方法可以,请问还有什么好的方法?
#4
初始化成 什么结果啊
#5
我的程序是用c++ 与 c# socket 通信,在c++ 定义了一个结构体, 发送的时候直接发送结构体地址就可以了,而c#中 发送接收都要用 byte[],在网上看了看例子,可以模拟出struct 结构体来,在struct 结构体中必须有构造函数,初始化的值就是接收的数据转化过来的
#6
就 在 结构体的 构造函数里面 初始化