C#如何定义结构?

高迪安 2003-08-06 10:31:37
在C#下如何定义如下C++结构
struct _Test
{
int ID;
char Name[40];
}

问题是如何指定Name? 用于读写二进制文件。
...全文
1169 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dragonsuc 2003-08-07
  • 打赏
  • 举报
回复
qqchen79(知秋一叶 [MS MVP]) (


更正确
Exchange2000 2003-08-07
  • 打赏
  • 举报
回复
7710703(易水寒) 说的对
7710703 2003-08-07
  • 打赏
  • 举报
回复
楼主是调用api吧?关于如何调用我这里找到一篇文章,楼主自己看吧:

http://www.tongyi.net/article/20010923/200109232288.shtml

另:楼上各位说的结构定义是不对的,在C#中,定义结构不能对其进行初始化,要定义只能这样:

struct _Test
{
int ID;
char[] Name;
}
高迪安 2003-08-07
  • 打赏
  • 举报
回复
我是一个C/C++程序员,出于兴趣(并不是工作的需要)学习C#。本想在C#中读取
由C++生成的二进制文件(由struct描述),可就是找不到用C#读取二进制文件块到
struct的方法。

还望C#高手指点。
qqchen79 2003-08-07
  • 打赏
  • 举报
回复
Why does it have to be a struct anyway?
It's not a good design to have a struct hold a memory block. coz valuetype instances will be copied around when passed as parameters.
Change struct to class will solve your problem.

On the other hand, if you are trying to declear it as struct for some interop reasons, you may wanna try:
[MarshalAs(UnmanagedType.ByValArray, SizeConst=40)]
byte[] Name;
shuilong 2003-08-06
  • 打赏
  • 举报
回复
我考,别人已经写过了,
shuilong 2003-08-06
  • 打赏
  • 举报
回复
struct _Test
{
int ID;
char[] Name=new char[40];
}
rouser 2003-08-06
  • 打赏
  • 举报
回复
public struct _Test
{
int ID;
char[] Name=new char[40];
}
大户翁 2003-08-06
  • 打赏
  • 举报
回复
_Test Test=new _Test();
Test.Name[0]=??
飞不动 2003-08-06
  • 打赏
  • 举报
回复
如何指定Name?不太明的你的意思。
_Test test;
int i=test.ID;
高迪安 2003-08-06
  • 打赏
  • 举报
回复
struct _Test
{
int ID;
char[] Name=new char[40];
}

提示错误:结构中不能有实例字段初始值设置项( Error CS0573 )。

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧