C#基础入门 四

C#基础入门 四

方法参数

  • 值参数:不附加任何修饰符;
  • 输出参数:以out修饰符声明,可以返回一个或多个给调用者;
    • 如果想要一个方法返回多个值,可以用输出参数来处理,输出参数由out关键字标识,如static void Car(out int x,out int y,int z){},与引用参数区别在于:调用方法前无需对输出参数进行初始化,输出型参数用于传递方法返回的数值。
    • 计算矩形面积的方法:(图8)

static void rectangle(int length,int width, out int rec)
        {
            rec = length * width;
        }
        public static void Main(string[] args)
        {
            int a = 10;
            int b = 5;
            int r;
            rectangle(a, b, out r);
            Console.WriteLine("矩形长为"+a);
            Console.WriteLine("矩形宽为"+ b);
            Console.WriteLine( "面积为" + r);
        }
  • 如果函数有return,输出函数返回值(图9),这样就可以实现一个函数有多个返回值。

 static int rectangle(int length,int width, out int rec)
        {
            rec = length * width;
            return length + 1;
        }
        public static void Main(string[] args)
        {
            int a = 10;
            int b = 5;
            int r;
            int c=rectangle(a, b, out r);
            Console.WriteLine("矩形长为"+a);
            Console.WriteLine("矩形宽为"+ b);
            Console.WriteLine( "面积为" + r+"返回值"+c);

        }
  • 引用参数:以ref修饰符声明;

    • 引用参数并不创建新的存储位置,相反,引用参数表示的存储位置恰是在方法调用中作为参数给出的那个变量所表示的存储位置,当利用引用参数想方法传递形参时,编译程序将把实际值在内存中的地址传递给方法。
  • 数组参数:以params修饰符声明。
    • 如果形参表中包含了数组型参数,那么它必须在参数表中位于最后,而且必须是一维数组类型,另外,数组型参数不可能将params修饰符与ref和out修饰符组合起来使用。
    • 数组参数长度可变,可为0,一次性,只能使用一次,而且要放到最后。
    • foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。
    • foreach(数据类型 标识符 in 表达式){循环体}
    • 计算{1,2,3,4}数组内元素的平方结果如下图所示(图10)

static void Square(params int[] s)
        {
            foreach (int g in s)
            {
                int radius = g;
                int square = radius * radius;
                Console.WriteLine(square);
            }
        }
        public static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4 };
            Square(arr);
        }

练习题

求两个数的最大值

static void Max(int x,int y, out int max)
        {
            if (x > y) max = x;
            else max = y;
            Console.WriteLine("max="+max);
        }
        public static void Main(string[] args)
        {
            int m;
            Console.WriteLine("请输入a的值:");
            int a = Convert.ToInt16(Console.ReadLine());
            Console.WriteLine("请输入b的值:");
            int b = Convert.ToInt16(Console.ReadLine());
            Max(a, b, out m);

        }
  • 结果如下图所示:(图11)

重载

  • 方法重载实际上是函数名重载,即支持多个不同的方法采用同一名字。
  • 实现方法的重载必须满足下列条件之一:一是参数表中对应的参数类型不同;二是参数表中参数个数不同。
  • 方法重载只跟参数有关,跟返回值无关。图12

 static int Sum(int x,int y)
        {
            return x + y;
        }
        static float Sum(float x,float y)
        {
            return x+y;
        }
        static double Sum(int x,float y,double z){
            return x+y+z;
        }
        public static void Main(string[] args)
        {
            int a = 10, b = 20;
            float c = 10.5f, d = 34f;
            double e = 40;
            Console.WriteLine(Sum(a, b));
            Console.WriteLine(Sum(c, d));
            Console.WriteLine(Sum(a,c,e));

        }
  • 如果形参中存在两个以上的形参类型存在隐式转换关系,则可能产生二义性
static double print(int i,double j){}
static double print(double i,int j){}
static void Main(string[] args)
{
    double x=print(5,5);//二义性
}

原文地址:https://www.cnblogs.com/senlinmilelu/p/8445654.html

时间: 2025-01-10 23:25:35

C#基础入门 四的相关文章

Python基础入门 (四)

一.迭代器&生成器 1.迭代器仅仅是一容器对象,它实现了迭代器协议.它有两个基本方法: 1)next 方法 返回容器的下一个元素 2)_iter_方法 返回迭代器自身.迭代器可以使用内建的iter方法创建 ts = iter(['asd','sds','qweq']) #创建iter方法 print(ts.__next__()) #使用_next_方法返回下一个元素 print(ts.__next__()) print(ts.__next__()) #运行结果 asd sds qweq#需要注意

React.js 基础入门四--要点总结

JSX语法,像是在Javascript代码里直接写XML的语法,实质上这只是一个语法糖,每一个XML标签都会被JSX转换工具转换成纯Javascript代码,React 官方推荐使用JSX, 当然你想直接使用纯Javascript代码写也是可以的,只是使用JSX,组件的结构和组件之间的关系看上去更加清晰. 1. HTML 标签 和 React 组件 在JS中写HTML标签,也许小伙伴们都惊呆了,那么React又是怎么区分HTML标签,React组件标签? HTML标签: var myDivEle

TensorFlow基础入门(四)

注意:本部分的ppt来源于中国大学mooc网站:https://www.icourse163.org/learn/ZUCC-1206146808?tid=1206445215&from=study#/learn/content?type=detail&id=1211168244&cid=1213754001 #MNIST手写数字识别数据集 import tensorflow as tf import tensorflow.examples.tutorials.mnist.input

Android基础入门教程——8.3.7 Paint API之—— Xfermode与PorterDuff详解(四)

Android基础入门教程--8.3.7 Paint API之-- Xfermode与PorterDuff详解(四) 标签(空格分隔): Android基础入门教程 本节引言: 上节我们写了关于Xfermode与PorterDuff使用的第一个例子:圆角&圆形图片ImageView的实现, 我们体会到了PorterDuff.Mode.DST_IN给我们带来的好处,本节我们继续来写例子练练手, 还记得Android基础入门教程--8.3.2 绘图类实战示例给大家带来的拔掉美女衣服的实现吗? 当时我

FPGA基础入门篇(四) 边沿检测电路

FPGA基础入门篇(四)--边沿检测电路 一.边沿检测 边沿检测,就是检测输入信号,或者FPGA内部逻辑信号的跳变,即上升沿或者下降沿的检测.在检测到所需要的边沿后产生一个高电平的脉冲.这在FPGA电路设计中相当的广泛. 没有复位的情况下,正常的工作流程如下: (1)D触发器经过时钟clk的触发,输出trigger信号,保存了t0时刻的信号. (2)同时由trigger通过非门输出信号,保留了当前时刻t1的触发信号 (3)经过与门输出信号pos_edge,neg_edge a) 只有t0时刻为高

Linux从入门到放弃、零基础入门Linux(第四篇):在虚拟机vmware中安装centos7.7

如果是新手,建议安装带图形化界面的centos,这里以安装centos7.7的64位为例 一.下载系统镜像 镜像文件下载链接https://wiki.centos.org/Download 阿里云官网:https://mirrors.aliyun.com 现更新为:https://opsx.alibaba.com/mirror 清华软件镜像:https://mirrors.tuna.tsinghua.edu.cn/ 都可以, 下载centos7.7的64位版本镜像文件种子,然后用下载软件下载即可

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来

Android基础入门教程——8.1.2 Android中的13种Drawable小结 Part 2

Android基础入门教程--8.1.2 Android中的13种Drawable小结 Part 2 标签(空格分隔): Android基础入门教程 本节引言: 本节我们继续来学习Android中的Drawable资源,上一节我们学习了: ColorDrawable:NinePatchDrawable: ShapeDrawable:GradientDrawable!这四个Drawable~ 而本节我们继续来学习接下来的五个Drawable,他们分别是: BitmapDrawable:Insert

从零基础入门JavaScript(1)

从零基础入门JavaScript(1) 1.1  Javascript的简史 1995年的时候   由网景公司开发的,当时的名字叫livescript    为了推广自己的livescript,搭了java顺风车,改名为javascript 与此同时,     微软因此在自身的浏览器里,也推出了自己的脚本语言 jscript 1997年时候,  由ECMA(欧洲计算机制造商协会)出面,推出了一套javascript的规范,Ecmascript ,规范提出js由三部分组成 JS的组成: ECMAS