美文网首页
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