C# 编程入门第七课

文章目录

  • C# 编程入门第七课
    • 1. 方法调用参数问题
    • 2. 方法标准
    • 3.传递数组,返回数组
    • 4. 方法高级参数
      • 4.1 out 关键字参数
      • 4.2 ref 参数
      • 4.3 params可变参数
    • 5.方法重载
    • 6. 方法的递归
    • 7. 一些常用方法

1. 方法调用参数问题

我们在Main()函数中,调用Test()函数,我们管Main()函数称之为调用者,
Test()函数称之为被调用者。

如果被调用者想要得到调用者的值:
1)、传递参数。
2)、使用静态字段来模拟全局变量。
如果调用者想要得到被调用者的值:
1)、返回值

Test() 函数定义的变量是局部变量

静态字段相当于C中的全局变量。

//静态字段 一般定义为类的字段
public static int _number = 10;

2. 方法标准

方法的功能一定要单一。
GetMax(int n1,int n2)
方法中最忌讳的就是出现提示用户输入的字眼。尽量放在Main函数

3.传递数组,返回数组

public static int[] Fun(int[] nums)
{}

4. 方法高级参数

4.1 out 关键字参数

如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组。
但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,
我们可以考虑使用out参数。
out参数就侧重于在一个方法中可以返回多个不同类型的值。

namespace _08使用out参数做登陆
{class Program{static void Main(string[] args){//提前定义msg,nstring msg;int nbool b = Fun_2(name, pwd, out msg,out n);}public static bool Fun_2(string name, string pwd,out string msg, out int number){msg = "ABC";number = 12;return true;}}
}

可以看到,除了return返回,还通过out参数返回 msg,后面还可以定义很多out参数

注意:out参数要求传入的参数要提前定义,函数内部的out参数一定要被赋值

4.2 ref 参数

能够将一个变量带入一个方法中进行改变,改变完成后,再讲改变后的值带出方法。(类似与C语言的指针传址)
ref参数要求在方法外必须为其赋值,而方法内可以不赋值。

class Program
{static void Main(string[] args){double salary = 5000;//在外面必须赋值JiangJin(ref salary);Console.WriteLine(salary);//salary变成5500Console.ReadKey();}public static void JiangJin(ref double s){s += 500;}}

4.3 params可变参数

将实参列表中跟可变参数数组类型一致的元素都当做数组的元素去处理。
params可变参数必须是形参列表中的最后一个元素

 class Program{static void Main(string[] args){Test("张三", 99, 100, 100, 100);Console.ReadKey();}public static void Test(string name, int id, params int[] score){int sum = 0;for (int i = 0; i < score.Length; i++){sum += score[i];}Console.WriteLine("{0}这次考试的总成绩是{1},学号是{2}", name, sum, id);}}

5.方法重载

概念:方法的重载指的就是方法的名称相同给,但是参数不同。
参数不同,分为两种情况
1)、如果参数的个数相同,那么参数的类型就不能相同。
2)、如果参数的类型相同,那么参数的个数就不能相同。
***方法的重载跟返回值没有关系。

static void Main(string[] args)
{int n = M(3, 4,7);Console.WriteLine(n);Console.ReadKey();
}public static int M(int a1, int a2)
{return a1 + a2;
}
public static double M(double d1, double d2)
{return d1 + d2;
}
public static int M(int n1, int n2, int n3)
{int result = n1 + n2 + n3;return result;

6. 方法的递归

方法自己调用自己。
例如找出一个文件夹中所有的文件。

7. 一些常用方法

字符串长度

string s = "ABCD";
int n = s.Length; //s的长度为4

保留两位小数

double d = 3.33888;
string s = d.ToString("0.00");
d = Convert.ToDouble(s); //d变成3.34(会四舍五入)

不够两位数保持原数。

C# 编程入门第七课方法调用参数问题,方法标准,传递数组,返回数组,方法高级参数(out关键字参数,ref参数,params可变参数),方法重载,方法的递归,一些常用方法相关推荐

  1. 函数返回引用什么意思_【20200917】编程入门第七课,函数(function)

    介绍 介绍 福哥今天要给大家讲讲编程里的重头戏--函数(function),有了函数,程序才是程序,为什么这么说呢?因为如果没有函数语法,所有重复工作(包括类似工作)都要重复编写代码,那样就失去了编程 ...

  2. c# 编程入门第六课常量,枚举,枚举转换成其他类型变量(枚举和int,转 string字符串转枚举),结构体,数组,冒泡排序,实际使用排序,方法(函数)

    c# 编程入门第六课 文章目录 c# 编程入门第六课 1. 常量 2. 枚举 3. 枚举转换成其他类型变量 3.1 枚举和int 3.2 转string 3.2 字符串转枚举 4.结构体 5.数组 7 ...

  3. C# 编程入门第五课,VS2019程序调试,for循环,水仙花数,Console.Write,又一种类型变换,三元表达式,产生随机数

    C# 编程入门第五课 文章目录 C# 编程入门第五课 1. VS2019程序调试 2. for循环 3. 水仙花数 4. Console.Write() 5. 又一种类型变换 6. 三元表达式 7.产 ...

  4. C#编程入门第四课,异常,switch-case选择结构,循环结构 while,break作用,do-while循环

    C#编程入门第四课 文章目录 C#编程入门第四课 1.异常 2. switch- case选择结构 3. 循环结构 while 4. break 作用 5. do-while循环 1.异常 那行代码有 ...

  5. C# 编程入门第三课 类型转换,++,关系运算符,bool类型(布尔类型),逻辑运算符,判断闰年,结构

    C# 编程入门第三课 文章目录 C# 编程入门第三课 1. 类型转换 2. ++,-- 3. 关系运算符 4. bool 类型(布尔类型) 5. 逻辑运算符 6.判断闰年 7. 结构 1. 类型转换 ...

  6. 【Java】_2_Java程序入门第七课

    好久没来园子了,春节刚过完,现在面对大家最想说的一句话是:你相亲了吗? 都说:孤独的男人玩dota,寂寞的女人穿丝袜. 我想现在这个时代屌丝才会天天上QQ.逛校内.跑猫扑.走天涯,没事发几句牢骚, 没 ...

  7. Android JNI入门第七篇——C调用Java

    关键代码: java: [java] view plaincopy print? public class CCallJava { public static String getTime() { L ...

  8. Flash鼠绘入门第七课:绘制一串逼真的葡萄

    进一步熟练掌握工具的使用.主要掌握混色器的使用,滤镜的运用.本节课的重点是画葡萄.难点是葡萄的组合,滤境的运用.在画葡萄前大家认真观察下边三个效果图. 主要观察: 1.葡萄的高光,葡萄的形状. 2.葡 ...

  9. Flash鼠绘入门第七课:绘制一串逼真的葡萄-Flash鼠绘一串逼真的葡萄1

    课程目的:进一步熟练掌握工具的使用.主要掌握混色器的使用,滤镜的运用.本节课的重点是 Flash鼠绘葡萄.难点是葡萄的组合,滤境的运用.在画葡萄前大家认真观察下边三个效果图. 主要观察: 1.葡萄的高 ...

最新文章

  1. 从零开始学习hadoop之发行版选择
  2. Java -- 泛型
  3. 字符驱动之按键(四:poll机制)
  4. 地理文本处理技术在高德的演进(下)
  5. 基于汇编语言及Proteus仿真的CPU8086水库水位监视系统
  6. redis 公网ip访问_怎样从公网访问内网Redis数据库
  7. jQuery Mobile 移动开发中的日期插件Mobiscroll使用说明
  8. 【Codeforces 364D】Ghd
  9. 视觉SLAM和激光SLAM的实现
  10. 您只能在Photoshop CS4中做的3酷技巧
  11. 容器三把斧之 | namespace原理与实现
  12. 18.集合框架(Map集合,HashMap和Hashtable的区别,Collections(集合工具类),集合练习,模拟斗地主(洗牌,发牌,看牌))
  13. 如何解决IE浏览器阻止下载文件
  14. 如何压缩图片大小但不失真
  15. 在Windows上编译FreeRDP
  16. ThinkMusic源码搭建音乐网站,并实现公网访问
  17. 关于使用微软拼音在Hbuilder打不出顿号、的问题
  18. Matlab数据分析与计算,进程线程面试题总结
  19. SAP顾问生涯闲记:来自超过20多个国家地区的团队一起做一个SAP项目是什么体验
  20. Notepad++输入模式之修改模和插入模式的切换

热门文章

  1. IPO前“紧急”分红7500万,上市对赌背后,这家功率半导体公司到底有多“硬”?...
  2. 四川大学计算机导论考试,四川大学计算机导论期末例题.doc
  3. 个人日程管理软件(最新版本1.6 beta 202009261922)
  4. 【转】初学入门:如何有效编写软件的75条建议
  5. html中的商标标签
  6. MQ原理、使用场景、IBM WebSphere MQ介绍及spring集成配置
  7. 一篇很好的关于Android的本科毕业论文《基于android手机通讯录的设计与实现毕业论文》转自百度
  8. 1方+2方+3方+...+N方
  9. BAT中读取文本文件
  10. EasyMock入门