摘要
方法是包含一系列语句的代码块。 程序通过调用该方法并指定任何所需的方法参数使语句得以执行。 在 C# 中,每个执行的指令均在方法的上下文中执行。
正文
该方法定义指定任何所需参数的名称和类型。 调用代码调用该方法时,它为每个参数提供了称为参数的具体值。 参数必须与参数类型兼容,但调用代码中使用的参数名(如果有)不需要与方法中定义的参数名相同。
public class Material
{
public string Name { get; set; }
public int Length { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public int Volume()
{
return Length * Width * Height;
}
}
static void Main(string[] args)
{
Material material =new Material();
material.Name = "A001";
material.Length = 10;
material.Height = 5;
material.Width = 5;
Console.WriteLine($"体积:{material.Volume()}");
}
image.png
按引用传递与按值传递
默认情况下,将值类型的实例传递给方法时,传递的是其副本而不是实例本身。 因此,对参数的更改不会影响调用方法中的原始实例。 若要按引用传递值类型实例,请使用 ref
关键字
public class Material
{
public string Name { get; set; }
public int Length { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public void Volume(ref int volume)
{
volume= Length * Width * Height;
}
}
static void Main(string[] args)
{
Material material =new Material();
material.Name = "A001";
material.Length = 10;
material.Height = 5;
material.Width = 5;
int volume = 0;
material.Volume(ref volume);
Console.WriteLine($"体积:{volume}");
}
image.png
引用类型的对象传递到方法中时,将传递对对象的引用。 也就是说,该方法接收的不是对象本身,而是指示该对象位置的参数。
public class Volume
{
public int value;
}
public class Material
{
public string Name { get; set; }
public int Length { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public void Volume(Volume volume)
{
volume.value= Length * Width * Height;
}
}
static void Main(string[] args)
{
Material material = new Material();
material.Name = "A001";
material.Length = 10;
material.Height = 5;
material.Width = 5;
Volume volume = new Volume();
material.Volume(volume);
Console.WriteLine($"体积:{volume.value}");
}
out的用法,它跟C++中的传引用是一样的,就是当有多个不同类型的返回值时,可以把要返回的结果声明成out,再当做参数传递给函数。
public class Material
{
public string Name { get; set; }
public int Length { get; set; }
public int Width { get; set; }
public int Height { get; set; }
public void Volume(out int volume, out int sum)
{
volume = Length * Width * Height;
sum = Length + Width + Height;
}
}
static void Main(string[] args)
{
Material material = new Material();
material.Name = "A001";
material.Length = 10;
material.Height = 5;
material.Width = 5;
int volume = 0;
int sum = 0;
material.Volume(out volume,out sum);
Console.WriteLine($"体积:{volume},合计:{sum}");
}
网友评论