[In, Out]是什么东东?

laserman 2003-08-21 10:20:25
在MSDN的Stream.Read看到了一个奇怪的定义:
public abstract int Read(
[
In,
Out
] byte[] buffer,
int offset,
int count
);
我把它复制到VS.NET中,可[In, Out]编译通不过,谁能告诉我这是怎么回事,为什么在MSDN中出现了这样的定义?
...全文
104 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
qimini 2003-08-25
  • 打赏
  • 举报
回复
[in,out]参数主要用于和win32 api交互,在C#一个例子:

int GetVideoPosition([Out, MarshalAs(UnmanagedType.LPStruct)] out RECT lpSRCRect,
[Out, MarshalAs(UnmanagedType.LPStruct)] out RECT lpDSTRect);
qimini 2003-08-25
  • 打赏
  • 举报
回复
[in,out]主要用于和win32 api的交互,在c#中不是标准语法(out in ref).一个例子:

int GetVideoPosition([Out, MarshalAs(UnmanagedType.LPStruct)] out RECT lpSRCRect[Out, MarshalAs(UnmanagedType.LPStruct)] out RECT lpDSTRect);
ljianq 2003-08-25
  • 打赏
  • 举报
回复
使用Out 可以返回值。
CBJ2049011 2003-08-25
  • 打赏
  • 举报
回复
out 参数是不是再传出前必须被赋值才行啊?
blastball 2003-08-25
  • 打赏
  • 举报
回复
in 可以不写,out是必要的,out允许变量传入时不用初始化。ref则不行
laserman 2003-08-25
  • 打赏
  • 举报
回复
是不是[In, Out]只是描述的一种方式,在程序代码中用不着。
gOODiDEA 2003-08-22
  • 打赏
  • 举报
回复
in:值传递,输入参数

Out: 址传递,输出参数,类似与ref但是必须先初始化
laserman 2003-08-22
  • 打赏
  • 举报
回复
我的是2003,是[In, Out],不是in, out,参数可选不成利呀,这个不需要可选,而是必选!
panyee 2003-08-21
  • 打赏
  • 举报
回复
stream.Read(buffer, offset, count);

in指示它是值传递, 默认的方式

out是引用传递, 必有输出, (我的2002里没有此项)
blastball 2003-08-21
  • 打赏
  • 举报
回复
表示参数可选。
可以是 Read(in int count)就可以了

110,533

社区成员

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

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

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