>  기사  >  백엔드 개발  >  C# 출력 매개변수

C# 출력 매개변수

WBOY
WBOY원래의
2024-09-03 15:29:34794검색

'out'은 C#의 키워드로, 참조 유형으로 메서드에 인수를 전달하는 데 사용됩니다. out 매개변수로 메소드에 전달된 변수는 메소드 호출에 전달되기 전에 선언하거나 초기화할 필요가 없습니다. 호출된 메서드는 컨트롤이 호출된 메서드를 떠나기 전과 호출된 메서드가 호출 메서드에 값을 반환하기 전에 out 매개 변수의 변수에 값을 할당해야 합니다. 여러 출력 매개변수를 메서드에 전달할 수 있으며 메서드는 여러 값을 반환합니다.

설명이 포함된 구문:

out 매개변수를 사용하여 메소드를 호출하는 동안 구문은 다음과 같습니다.

Method_name(out data_type variable_name);

여기서 Method_name은 메소드에 부여된 사용자 정의 이름이고, 'out'은 메소드에 전달된 변수가 out 매개변수임을 표현하는 데 사용되는 키워드이며, data_type은 변수의 모든 데이터 유형이 될 수 있으며, Variable_name은 사용자가 정의한 변수 이름입니다.

호출되는 메소드의 구문은 다음과 같습니다.

access_specifier return_type Method_name(out data_type variable_name);

여기에서 access_specifier는 public 또는 private과 같이 C#에서 지원하는 5가지 액세스 지정자 중 임의의 액세스 지정자일 수 있습니다. 그런 다음 return_type은 이 메서드가 반환하는 데이터 유형이고 그 뒤에 메서드 이름과 'out' 매개변수 목록이 옵니다.

C#에서 'out' 매개변수는 어떻게 작동하나요?

C#에서 'out' 키워드는 'ref' 및 'in' 키워드와 유사하게 작동합니다. 'out' 매개변수와 'ref' 매개변수의 차이점은 'out' 매개변수 변수가 메소드에 전달되기 전에 초기화할 필요가 없으며 사용자가 메소드의 인수 목록에서 'out' 매개변수 변수를 선언할 수 있다는 것입니다. 'out' 매개변수의 인라인 선언이라고 하는 별도로 선언하는 대신 'ref' 매개변수 변수는 메소드에 전달되기 전에 초기화되어야 합니다. 인라인으로 선언된 'out' 매개변수는 동일한 코드 블록에서 액세스할 수 있습니다.

예시 #1

코드:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main(string[] args)
{
//inline declaration of 'out' parameter
Display(out int num);
Console.WriteLine("Value of variable 'num': {0}", num);
Console.ReadLine();
}
public static void Display(out int a)
{
//need to assign value
a = 10;
a += a;
}
}
}

출력:

C# 출력 매개변수

  • 이제 'out'과 'in' 키워드의 차이점은 'out' 매개변수 값은 호출된 메소드 내에서 수정할 수 있지만 'in' 매개변수 값은 호출된 메소드 내에서 수정할 수 없다는 것입니다.
  • 메서드에는 Display(out x, out y);
  • 와 같은 'out' 매개변수가 두 개 이상 있을 수 있습니다.
  • 'out' 매개변수로 작업하려면 사용자는 메소드 정의 및 호출 메소드에서 'out' 키워드를 명시적으로 사용해야 합니다. 동시에, 메소드 정의와 호출에서 'out' 매개변수에 지정된 이름이 동일할 필요는 없습니다.
  • 'out' 매개변수는 메소드에 대한 참조로 전달되므로 메모리에 새 저장 위치를 ​​생성하지 않고 메소드 호출 시 변수 인수가 차지하는 동일한 저장 위치를 ​​사용합니다. out을 사용하는 메소드는 매개변수가 여러 값을 반환할 수 있기 때문에 사용자가 호출된 메소드에서 여러 개의 처리된 값을 얻을 수 있도록 도와준다. 그러나 메소드가 호출 메소드에 값을 반환하기 전에 'out' 매개변수에 메소드의 일부 값이 할당되어야 합니다.
  • 'async' 수정자를 사용하여 정의하는 비동기 메서드에서 'out' 매개변수를 사용할 수 없고 'iterator' 메서드에서 'out' 매개변수를 사용할 수 없는 것처럼 모든 유형의 메서드에서 'out' 매개변수를 사용할 수 없습니다. '수익률 반환' 또는 '수익률 중단' 진술로 구성됩니다. 속성은 변수가 아니므로 메서드에 'out' 매개변수로 전달할 수 없습니다.
  • 'out' 매개변수는 유형 매개변수가 공변적임을 나타내기 위해 일반 유형을 사용하여 정의할 수 있습니다. 이와 함께 'out' 매개 변수는 C#의 다양한 데이터 유형에 대한 TryParse() 메서드에서 사용됩니다. TryParse() 메서드는 성공 또는 실패를 지정하는 부울 값을 반환하며 성공 시 결과는 'out' 매개 변수로 제공됩니다.

예시 #2

코드:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main(string[] args)
{
string str = "123456";
int num;
//if ‘canParse’ is true; the result of conversion will be stored in ‘num’
bool canParse = Int32.TryParse(str, out num);
if (canParse)
Console.WriteLine(num);
else
Console.WriteLine("Could not be parsed.");
Console.ReadLine();
}
}
}

출력:

C# 출력 매개변수

C# 출력 매개변수의 예

다음은 C# Out 매개변수의 예입니다.

예시 #1

메서드에 전달된 여러 'out' 매개변수를 보여주는 예와 그 후 해당 메서드는 여러 값을 반환합니다.

코드:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main()
{
//declaring variables without assigning values
float area, perimeter;
//passing multiple variables to a method using 'out' keyword
Calculate(5, 10, out area, out perimeter);
//displaying the result
Console.WriteLine("The area of rectangle is: {0}", area);
Console.WriteLine("The perimeter of rectangle is: {0}", perimeter);
Console.ReadLine();
}
//method taking length & breadth & it will return area and perimeter of rectangle
public static void Calculate(int length, int breadth, out float area, out float
perimeter)
{
area = length * breadth;
perimeter = 2 * (length + breadth);
}
}
}

출력:

C# 출력 매개변수

예시 #2

'out' 매개변수의 인라인 선언 예시

코드:

using System;
namespace ConsoleApp4
{
public class Program
{
public static void Main()
{
//in-line declaration of variables without assigning values
Calculate(out int length, out int breadth, out float area);
//displaying the values of length, breadth, and area
Console.WriteLine("Length of rectangle: " + length);
Console.WriteLine("Breadth of rectangle: " + breadth);
Console.WriteLine("Area of rectangle: " + area);
Console.ReadLine();
}
//method taking 'out' parameters and it returns multiple values
public static void Calculate(out int l, out int b, out float a)
{
l = 30;
b = 40;
a = l * b;
}
}
}

출력:

C# 출력 매개변수

결론

C#의 'out' 매개변수를 사용하면 사용자가 메서드를 참조하여 인수를 전달할 수 있습니다. 'out' 매개변수로 사용되는 변수는 메소드에 전달되기 전에 초기화할 필요가 없습니다. 호출된 메서드는 값을 반환하기 전에 out 매개 변수에 값을 할당해야 합니다.

위 내용은 C# 출력 매개변수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:C#의 정적 키워드다음 기사:C#의 정적 키워드