C#:使用ref,out关键词定义返回值函数

简介: 代码 static int xValue(ref int num, ref int num2)        {            num = 2 * num;            num2 = 2 * num2;            return num;        }   ...
img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
static   int  xValue( ref   int  num,  ref   int  num2)
        {
            num 
=   2   *  num;
            num2 
=   2   *  num2;
            
return  num;
        }
        
static   void  Main( string [] args)
        {
            
int  num  =   5 ;
            
int  num2  =   10 ;
            Console.WriteLine(xValue(
ref  num,  ref  num2));
            Console.WriteLine(num 
+   " : "   +  num2);
            
// 这时的num=10, num2=20;输出结果:10:20;加上ref后会影响到函数外面的变量
        }

两个注意点:
1:定义函数时.指定参数的数据类型与函数体外面定义的变量类型一致,static int xValue(ref int num, ref int num2)
2:使用此函数时为每个参数加上ref.如果不加的话则不会影响函数外面变量的值

img_405b18b4b6584ae338e0f6ecaf736533.gif 代码
static   int  MaxValueL( int [] numArry,  out   int  maxIndex,  out   int  maxIndex2)
        {
            
int  MaxValue  =  numArry[ 0 ];
            maxIndex 
=   0 ;
            maxIndex2 
=   100 ;
            
for  ( int  i  =   1 ; i  <  numArry.Length; i ++ )
            {
                
if  (MaxValue  <  numArry[i])
                {
                    MaxValue 
=  numArry[i];
                    maxIndex 
=  i;
                }
            }
            
return  MaxValue;
        }
        
static   void  Main( string [] args)
        {
            
int  maxIndex;
            
int  maxIndex2;
            
int [] numArr  =  {  14 3 34 11 99 33  };
            Console.WriteLine(MaxValueL(numArr, 
out  maxIndex,  out  maxIndex2));
            
// 返回函数体内的变量MaxValue
            Console.WriteLine(maxIndex  +   1 );
            
// 返回函数体内的变量maxIndex
            Console.WriteLine(maxIndex2);
            
// 返回函数体内的变量maxIndex2
            Console.ReadKey();
        }

 

两个注意点:
1:定义函数时.指定输出参数的数据类型与函数体外面定义的变量类型一致,out int maxIndex, out int maxIndex2
2:使用此函数时为想要输出参数加上 out .
这里的输出是指把函数体内的变量输出到函数体外应用.这也关联到了变量的作用域问题.

 

目录
相关文章
|
存储 C#
C#学习系列相关之数组(一)---数组的定义与使用
C#学习系列相关之数组(一)---数组的定义与使用
140 0
C#系列之ref和out的区别
C#系列之ref和out的区别
519 0
|
7月前
|
C#
C# 中关于补位的写法 PadLeft,PadRight 函数
C# 中的 `PadLeft` 和 `PadRight` 是 String 类提供的用于字符串补位的实用方法。`PadLeft` 在字符串左侧填充指定字符,使其达到指定长度;`PadRight` 则在右侧填充。两者通过检查原字符串长度,计算需填充字符数,并创建新字符数组完成操作。时间复杂度为 O(n),适用于简单补位场景,但在大量操作时需注意性能影响。示例代码展示了如何使用这两个方法进行补位操作。
|
9月前
|
存储 安全 编译器
学懂C#编程:属性(Property)的概念定义及使用详解
通过深入理解和使用C#的属性,可以编写更清晰、简洁和高效的代码,为开发高质量的应用程序奠定基础。
522 12
|
10月前
|
C# Python
使用wxpython开发跨平台桌面应用,对wxpython控件实现类似C#扩展函数处理的探究
【10月更文挑战第30天】使用 `wxPython` 开发跨平台桌面应用时,可以通过创建辅助类来模拟 C# 扩展函数的功能。具体步骤包括:1. 创建辅助类 `WxWidgetHelpers`;2. 在该类中定义静态方法,如 `set_button_color`;3. 在应用中调用这些方法。这种方法提高了代码的可读性和可维护性,无需修改 `wxPython` 库即可为控件添加自定义功能。但需要注意显式调用方法和避免命名冲突。
|
安全 C# 索引
C#一分钟浅谈:属性与索引器的定义
本文深入浅出地介绍了C#编程中的属性和索引器。属性让字段更安全,通过访问器方法在读写时执行额外操作,如验证数据有效性;索引器则赋予类数组般的访问方式,支持基于索引的数据访问模式。文章通过示例代码展示了如何定义及使用这两种特性,并提供了常见问题及其解决方案,帮助读者写出更健壮、易维护的代码。希望读者能从中学习到如何有效利用属性和索引器增强C#类的功能性。
229 12
|
C# 计算机视觉
C#中out关键字
C#中out关键字
153 0
|
编译器 C# 计算机视觉
C#中的ref关键字
C#中的ref关键字
144 0
|
开发框架 .NET 程序员
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
掌握C#语言的精髓:基础知识与实用技能详解(数据类型与变量+ 条件与循环+函数与模块+LINQ+异常+OOP)
82 0
|
存储 C# 索引
C#学习相关系列之数据类型类的定义(一)
C#学习相关系列之数据类型类的定义(一)
196 0