C# struct类型中如何定义数组

mengyq_82 2010-07-02 04:17:37
如题
...全文
687 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
RHCL 2010-07-02
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wuyazhe 的回复:]
C# code

static void Main(string[] args)
{
MyData ss = new MyData();
ss.data = new byte[10];
}

public struct MyData
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
……
[/Quote]
学习下~~ http://social.microsoft.com/Forums/zh-CN/2212/thread/fcf0942f-6492-43c7-a2aa-dfb54aac92ab
vrhero 2010-07-02
  • 打赏
  • 举报
回复
嗯,一般只有与非托管代码交互才用得到...
兔子-顾问 2010-07-02
  • 打赏
  • 举报
回复

static void Main(string[] args)
{
MyData ss = new MyData();
ss.data = new byte[10];
}

public struct MyData
{
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)]
public byte[] data;
}


p/invoke中还是用的到的哦。
vrhero 2010-07-02
  • 打赏
  • 举报
回复
引用 MSDN...忘了改...
vrhero 2010-07-02
  • 打赏
  • 举报
回复
如果有数组成员不应该定义struct而应该定义class,因为struct是值类型数组是引用类型...
[Quote=引用楼主 mengyq_82 的回复:]
不要定义结构,除非该类型具备以下所有特征:

它在逻辑上表示单个值,与基元类型(整型、双精度型等)类似。
它的实例大小小于 16 字节。
它是不可变的。
它将不必频繁被装箱。

如果这些条件中的一个或多个没有满足,则创建引用类型而不是结构。不遵守此准则会对性能产生负面影响。[/Quote]

110,538

社区成员

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

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

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