C#中out关键字

简介: C#中out关键字

简介

在C#中可以使用out关键字,指定所给的参数是一个输出参数。out关键字的使用方式与ref关键字相同,都是在函数定义和函数调用中用作参数的修饰符。

一个使用out关键字的例子

internal class Program
    {
        static void Main(string[] args)
        {
            int[] arr = { 2, 4, 6, 8, 10, 13 };
            int max,min;
            double average;
            average = CalculateAverage(arr, out max, out min);
            Console.WriteLine($"The Max is {max}");
            Console.WriteLine($"The Min is {min}");
            Console.WriteLine($"The Average is {average}");
        }
        static double CalculateAverage(int[] arr, out int maxVal, out int minVal)
        {
            maxVal = arr[0];
            minVal = arr[0];
            double sum = 0;
            double average = 0;
            for(int i = 0;i < arr.Length;i ++)
            {
                sum += arr[i];
                if (arr[i] > maxVal) 
                { 
                    maxVal = arr[i];
                }
                if (arr[i] < minVal)
                {
                    minVal = arr[i];
                }
            }
            average = sum / arr.Length;
            return average;
        }
    }


运行结果,如下图所示:

实际上,out的执行方式与引用参数几乎完全一样,因为在函数执行完毕后,该参数的值将返回给函数调用中使用的变量。

但是二者还是存在一些重要的区别:

1、把未赋值的变量用作ref参数是非法的,但可以把未赋值的变量用作out参数。

2、在使用out参数时,必须把它看成尚未赋值。

参考书籍

《C#入门经典(第7版)》——Benjamin Perkins、Jacob Vibe Hammer、Jon D. Reid

目录
相关文章
|
7月前
|
C#
30.C# 关键字 this初步学习
30.C# 关键字 this初步学习
42 1
|
7月前
|
C#
C#系列之ref和out的区别
C#系列之ref和out的区别
237 0
|
7月前
|
C#
28.c#关键字base初步学习
28.c#关键字base初步学习
37 0
|
7月前
|
C#
27.c#关键字sealed修饰类
27.c#关键字sealed修饰类
72 0
|
7月前
|
开发框架 .NET 编译器
C# 9.0中的静态匿名函数:引入static关键字的新用法
【1月更文挑战第15天】C# 9.0为匿名函数带来了一个新的修饰符static,允许开发者明确指定匿名函数不会捕获其包含作用域中的任何变量。这一特性增强了代码的性能和可读性,同时减少了因不小心捕获变量而导致的潜在错误。本文将详细探讨C# 9.0中静态匿名函数的语法、使用场景以及它们如何影响代码的性能和安全性。
|
7月前
|
SQL 开发框架 .NET
EntityFramework数据持久化复习资料3、C#拓展方法与yield关键字使用
EntityFramework数据持久化复习资料3、C#拓展方法与yield关键字使用
57 0
|
2月前
|
开发框架 Cloud Native .NET
10 个 C# 关键字和功能
10 个 C# 关键字和功能
59 8
|
4月前
|
C# 索引
C#中的virtual和override关键字
C#中的virtual和override关键字
51 3
|
4月前
|
开发框架 .NET C#
【Azure Developer】C# / .NET 静态函数中this关键字的作用
【Azure Developer】C# / .NET 静态函数中this关键字的作用
|
5月前
|
开发框架 .NET C#
【Azure Developer】C# / .NET 静态函数中this关键字的作用
在C#中,`this`关键字用于扩展方法,允许向已有类型添加功能而不修改其源代码。扩展方法必须在静态类中定义,且第一个参数使用`this`修饰,如`public static XElement AcquireElement(this XContainer container, string name, bool addFirst = false)`。这种方式增强了代码的可读性和类型的安全性,尤其在处理第三方库时。