社区
C#
帖子详情
请问C#语法问题:方法参数中有out和in关键字是什么意思?
屡败屡战数马援
2003-11-10 04:56:24
比如方法定义
public bool FunctionA(string Str,out int Back)
{
// ....
}
我发现在方法参数中有的带in,有的带out,不明白什么意思。我在vs.net带的C#语言参考里面没有找到,请教高手解答。谢谢!
...全文
470
4
打赏
收藏
请问C#语法问题:方法参数中有out和in关键字是什么意思?
比如方法定义 public bool FunctionA(string Str,out int Back) { // .... } 我发现在方法参数中有的带in,有的带out,不明白什么意思。我在vs.net带的C#语言参考里面没有找到,请教高手解答。谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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
关键字
:解锁
方法
参数
的新能力
out
关键字
用于声明
方法
参数
,使得这些
参数
可以在
方法
内部被赋值并在
方法
外部使用。与ref
关键字
不同的是,out
参数
不需要在传递之前初始化。以下是out无需初始化:调用
方法
时,out
参数
不必先初始化。必须赋值:在
方法
内部,out
参数
必须至少赋值一次。提高可读性:使
方法
的意图更加明确,表明某些
参数
仅用于输出。定义一个带有out
参数
的
方法
非常简单,只需在
参数
前加上out
关键字
即可。int number;number");
【
C#
小知识】
方法
参数
传递中的ref、out、in
关键字
今天我们来总结一下
参数
传递中的ref、out、in
关键字
,话不多说直接开始。 在
方法
进行
参数
传递时,我们可以使用ref、out、in
关键字
对
参数
进行修饰。当
参数
使用ref、out、in修饰后,
参数
则会按引用传递,而非按值传递。 在使用ref、out、in
关键字
时,需要在
方法
定义和
方法
调用处显示的使用
关键字
。下面就来看一下实际的使用案例,示例如下: using System; class Program { static void Main(string[] args) {
C#
方法
(完整篇-包含了:
参数
(out,ref)的
关键字
,
方法
调用顺序,
方法
的栈帧以及递归调用实现斐波那契数列等内容)
本文主要针对
C#
方法
,对
C#
方法
的var
关键字
,
方法
参数
类型,
方法
命名
参数
,
参数
的
关键字
,
方法
的调用顺序,
方法
的栈帧,递归进行归纳整理,本文内容由本人自己总结,若有不足之处,欢迎留言补充,指正。
C#
中的
关键字
out和ref的区别
本文主要介绍了
C#
的基础
语法
中的out和ref的区别
C#
所有
关键字
语法
详解
通过本文的详细介绍,相信您已经对
C#
中的
关键字
有了全面的了解。掌握这些
关键字
的使用是编写高效、可维护
C#
代码的基础。建议在实际开发中结合具体场景深入学习和实践这些
关键字
的应用。
C#
111,094
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章