标签:delay 程序 public lis spl 参数传递 spec 多个 mod
一个方法是把一些相关的语句组织在一起,用来执行一个任务的语句块。
通过指定在 class
或 struct
中声明方法:
public
或 private
。 默认值为 private
。abstract
或 sealed
。void
(如果该方法不具有)。当定义一个方法时,从根本上说是在声明它的结构的元素。在 C# 中,定义方法的语法如下:
<Access Specifier> <Return Type> <Method Name>(Parameter List)
{
Method Body
}
方法的各个元素:
下面的类包含三个方法:
abstract class Motorcycle
{
public void StartEngine() { }
protected void AddGas(int gallons) { }
public virtual int Drive(int miles, int speed) { return 1; }
public abstract double GetTopSpeed();
}
在对象上调用方法类似于访问字段。 在对象名称之后,依次添加句点、方法名称和括号。 参数在括号内列出,并用逗号隔开。 因此,可以按以下示例中的方式调用 Motorcycle 类的方法:
class TestMotorcycle : Motorcycle
{
public override double GetTopSpeed()
{
return 108.4;
}
static void Main()
{
TestMotorcycle moto = new TestMotorcycle();
moto.StartEngine();
moto.AddGas(15);
moto.Drive(5, 20);
double speed = moto.GetTopSpeed();
Console.WriteLine("My top speed is {0}", speed);
}
}
当调用带有参数的方法时,您需要向方法传递参数。在 C# 中,有三种向方法传递参数的方式:
方式 | 描述 |
---|---|
值参数 | 这种方式复制参数的实际值给函数的形式参数,实参和形参使用的是两个不同内存中的值。在这种情况下,当形参的值发生改变时,不会影响实参的值,从而保证了实参数据的安全。 |
引用参数 | 这种方式复制参数的内存位置的引用给形式参数。这意味着,当形参的值发生改变时,同时也改变实参的值。 |
输出参数 | 这种方式可以返回多个值。 |
方法可以向调用方返回值。 如果返回类型(方法名称前列出的类型)不是 void,则方法可以使用 return 关键字来返回值。 如果语句中 return 关键字的后面是与返回类型匹配的值,则该语句将该值返回给方法调用方。 return 关键字还会停止方法的执行。 如果返回类型为 void,则可使用没有值的 return 语句来停止方法的执行。 如果没有 return 关键字,方法执行到代码块末尾时即会停止。 具有非 void 返回类型的方法才能使用 return 关键字返回值。
通过使用异步功能,你可以调用异步方法而无需使用显式回调,也不需要跨多个方法或 lambda 表达式来手动拆分代码。
异步方法可以具有 Task、Task、 或 void
返回类型。 void
返回类型主要用于定义需要 void
返回类型的事件处理程序。 无法等待返回 void
的异步方法,并且返回 void 方法的调用方无法捕获该方法引发的异常。 从 C# 7.0 开始,异步方法可以有任何类似任务的返回类型。
在下面的示例中,DelayAsync
是一个异步方法,包含返回整数的 return 语句。 由于它是异步方法,其方法声明必须具有返回类型 Task
。 因为返回类型是 Task
,await
中 DoSomethingAsync
表达式的计算将如以下 int result = await delayTask
语句所示得出整数。
using System;
using System.Diagnostics;
using System.Threading.Tasks;
public class Example
{
// This Click event is marked with the async modifier.
public static void Main()
{
DoSomethingAsync().Wait();
}
private static async Task DoSomethingAsync()
{
int result = await DelayAsync();
Console.WriteLine("Result: " + result);
}
private static async Task<int> DelayAsync()
{
await Task.Delay(100);
return 5;
}
// Output:
// Result: 5
}
// The example displays the following output:
// Result: 5
异步方法不能声明任何 in、ref 或 out 参数,但是可以调用具有这类参数的方法。
标签:delay 程序 public lis spl 参数传递 spec 多个 mod
原文地址:https://www.cnblogs.com/ouyangkai/p/12759501.html