美文网首页
33.C# 方法的使用

33.C# 方法的使用

作者: 技术老小子 | 来源:发表于2024-03-06 07:06 被阅读0次

摘要


方法是包含一系列语句的代码块。 程序通过调用该方法并指定任何所需的方法参数使语句得以执行。 在 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}");
}

相关文章

网友评论

      本文标题:33.C# 方法的使用

      本文链接:https://www.haomeiwen.com/subject/yeorzdtx.html