社区
C#
帖子详情
请问C#语法问题:方法参数中有out和in关键字是什么意思?
屡败屡战数马援
2003-11-10 04:56:24
比如方法定义
public bool FunctionA(string Str,out int Back)
{
// ....
}
我发现在方法参数中有的带in,有的带out,不明白什么意思。我在vs.net带的C#语言参考里面没有找到,请教高手解答。谢谢!
...全文
453
4
打赏
收藏
请问C#语法问题:方法参数中有out和in关键字是什么意思?
比如方法定义 public bool FunctionA(string Str,out int Back) { // .... } 我发现在方法参数中有的带in,有的带out,不明白什么意思。我在vs.net带的C#语言参考里面没有找到,请教高手解答。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ball_24
2003-11-10
打赏
举报
回复
大哥,最好的老师就是Help
brightheroes
2003-11-10
打赏
举报
回复
同楼上
gshope
2003-11-10
打赏
举报
回复
另外一个是int,不是in,你看错了。
gshope
2003-11-10
打赏
举报
回复
out请参见
C# 关键字 | 方法参数
方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。
当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。
若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。
不必初始化作为 out 参数传递的变量。然而,必须在方法返回之前为 out 参数赋值。
属性不是变量,不能作为 out 参数传递。
如果两个方法的声明仅在 out 的使用方面不同,则会发生重载。不过,无法定义仅在 ref 和 out 方面不同的重载。例如,以下重载声明是有效的:
class MyClass
{
public void MyMethod(int i) {i = 10;}
public void MyMethod(out int i) {i = 10;}
}
而以下重载声明是无效的:
class MyClass
{
public void MyMethod(out int i) {i = 10;}
public void MyMethod(ref int i) {i = 10;}
}
有关传递数组的信息,请参见使用 ref 和 out 传递数组。
示例
// cs_out.cs
using System;
public class MyClass
{
public static int TestOut(out char i)
{
i = 'b';
return -1;
}
public static void Main()
{
char i; // variable need not be initialized
Console.WriteLine(TestOut(out i));
Console.WriteLine(i);
}
}
输出
-1
b
请参见
C# 关键字 | 方法参数
C#
方法
(完整篇-包含了:
参数
(out,ref)的
关键字
,
方法
调用顺序,
方法
的栈帧以及递归调用实现斐波那契数列等内容)
本文主要针对
C#
方法
,对
C#
方法
的var
关键字
,
方法
参数
类型,
方法
命名
参数
,
参数
的
关键字
,
方法
的调用顺序,
方法
的栈帧,递归进行归纳整理,本文内容由本人自己总结,若有不足之处,欢迎留言补充,指正。
C#
——out
参数
修饰符
C#
——out
参数
修饰符 out
关键字
通过引用传递
参数
。 它让形参成为实参的别名,这必须是变量。 换而言之,对形参执行的任何操作都是对实参执行的。 它与 ref
关键字
相似,只不过 ref 要求在传递之前初始化变量。 它也类似于 in
关键字
,只不过 in 不允许通过调用
方法
来修改
参数
值。 若要使用 out
参数
,
方法
定义和调用
方法
均必须显式使用 out
关键字
。 例如: int initializeInMethod; OutArgExample(out initializeInMethod); Con
C#
中out
关键字
的用法
今天学习了一下
C#
中关于out的用法,发现它跟C++中的传引用是一样的,就是当有多个不同类型的返回值时,可以把要返回的结果声明成out,再当做
参数
传递给函数。 static void Main(string[] args) { int[] arr = { 1, 5, 2, 6, 0, 3, 9, 4, 2 }; int max, m...
C#
关键字
汇总
学习
C#
【
C#
】
C#
中的ref、out
关键字
的应用与区别
目录01、 本文背景02、ref的定义与使用03、out的定义与使用04、ref与out的区别05、小结 01、 本文背景 原本我是一个地地道道的C/C++开发者,我其实很难想象有一天我会去接触其他语言,因为当初我就是奔着C/C++学完可以打天下,此意并不是说我不想学习,只是不想接触更多的语言,我认为知识的深度比广度更值得付出时间。 言归正传! 入职之后,一年都是用C++编程、但是最近,公司交给我了一个新任务,接触一个新的项目,这个项目的源代码是其他公司的,只不过被我们的客户买来做二次开发,然后我们公司的板
C#
110,499
社区成员
642,576
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章