C#整理3——函数

数据类型--变量常量--运算符表达式--语句(顺序,分支,循环)--数组--函数

函数

1、定义:能够独立完成某个功能的模块。
2、好处:1.结构更清析(编写、维护方便 )。2.代码重用。3.分工开发。
3、四要素:名称,输入(参数),输出(返回的类型),加工(函数体)

语法:
返回类型 函数名(参数类型 参数名,....)
{
函数体
}

函数调用:
[数据类型 变量名 = ]函数(参数);

函数调用时:调用的参数和函数定义的参数保持一对待:个数,类型,对应。

形参:形式参数。——函数定义的参数。
实参:实际参数。——函数调用的参数。

实参、形参传值的规律——传值,传址。

传值:参于整型、浮点、bool、char这几种内建类型在函数传递参数的时候,默认都是传值。
传值是把实参做一个副本(copy)传递给形参。
m = 30;
Add(m);
static void Add(int a)
{
a += 20;
}
传址:默认情况下,数组就是传地址,字符串也是传地址。
对于内建的整型、浮点、bool、char这些类型,如果要变成传址的话,需要在前面加ref
m = 30;
Add(ref m);
static void Add(ref int a)
{
a += 20;
}

对于传值和传址大家要记住 :
1.什么是传值,什么是传址?这个要分清楚。
2.默认情况下,哪些类型是传值?哪些类型是传址?
3.对于默认传值的类型,如何让他们变为传址?ref

以后为了防止因为传值,传址引起来的错误 ,建议大家采用返回值的形式,明确返回的数据

递归——仅做了解。
函数自己调自己。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace ConsoleApplication1
 7 {
 8     class Class7
 9     {
10         static void Main(string[] args)
11         {
12             Test(0);
13         }
14         static void Test(int a)
15         {
16             //if条件的return很重要,没有的话就永远出不来了。
17             if (a > 5)
18             {
19                 return;
20             }
21             a++;
22             Console.WriteLine("正在做第" + a + "个梦");
23             Test(a);
24             Console.WriteLine("第" + a + "个梦醒了");
25         }
26     }
27 }

常用的类:
(一)数学类:Math
1.Math.Ceiling(小数/整数):返回大于当前小数的最小整数。——天花板数
2.Math.Floor(小数/整数):返回小于当前小数的最大整数。——地板数
Console.WriteLine(Math.Ceiling(3.14)); //4
Console.WriteLine(Math.Floor(3.14)); //3
Console.WriteLine(Math.Ceiling(3.0)); //3

3.Math.Pow(2,3)求指数。相当于2的3次方
4.Math.Sqrt(16)开平方。
5.四舍五入。
Math.Round(3.63); //4
Math.Round(3.14); //3

(二)日期时间:DateTime
构造:DateTime dt = new DateTime([1990,2,5[,3,44,21]]);
DateTime dt = new DateTime(); //?
DateTime dt = new DateTime(1990, 2, 5);//?
DateTime dt = new DateTime(1990, 2, 5, 3, 44, 25);//?
当前时间:
DateTime dt = DateTime.Now;

日期时间对象的数据:
Year,Month,Day,Hour,Minite,Second,MilliSecond
DayOfWeek——星期几。DayOfYear——一年中的第几天。
Date——取期日期部份。TimeOfDay——取期时间部份。
日期时间对象的函数:
AddYears(int num)
AddMonths(int num)
AddDays(int num)
AddHours(int num)
AddMinutes(int num)
AddSeconds(int num)

日期时间型数据可以直接相减,返回两个日期之间差的天数和时间。

ToString(格式字符串)函数:把日按照某种格式显示出来。
格式字符串:
yyyy——四位数字的年份
yy——两位数字的年份
MM——两位数字的月分,不足两位添0
M——1-2位数字的月份
dd——两位数字的天,不足两位添0
d——1-2位数字的天。
hh——
h——
mm——
m——
ss——
s——
ms——毫秒。
例如:
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy年MM月dd日hh时mm分ss秒"));

不止是日期时间型数据的ToString()函数中可以放格式化字符中。整数,小数的ToString()中也可以放格式化字符串。
小数和整数类型的格式化符号主要是有四个。
.——小数点
,——整数部份三位的分隔符
#——任意位数字,有几位显示几位
0——至少一位数字,不足则补0.

例:
#.00——必须保留两位小数。

(三)字符串
*Length:字符串的长度。

ToLower():全都转成小写
ToUpper():全都转成大写

TrimStart():
TrimEnd():
Trim():压两头的空格。

*StartsWidth("字符串"):(bool)是否以括中的字符串开头,是--返回true。
*EndsWidth("字符串"):(bool)是否以括号中的字符串结尾,是--返回true。
*Contains("字符串"):(bool)是否包括括号中的字符串。是--返回true。

*IndexOf("子串"):(int)返回子串在字符串中第一次出现的位置。
*LastIndexOf("子串"):(int)返回子串在字符串中最后一次出现的位置。
以上两函数,如果在字符串中找不到相应的子串,返回-1

*Substring(int start[,int length]):(string)截取子串。
Replace(string old,string new):(string)把字符串的old串换成new串
*Split(‘字符‘):(string[])按照括号中的字符把字符串拆开成数组中的元素。

1.从键盘输入一个正确的身份证号,获取其生日。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace ConsoleApplication1
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Console.Write("请输入一个身份证号");
13             string s = Convert.ToString(Console.ReadLine());
14             Console.Write("生日是" + s.Substring(6, 8));
15         }
16     }
17 }

2.从路径:C:\Users\Administrator\Desktop\1220\0104\aaa.txt中,获取文件名。(用两种法做)

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace ConsoleApplication1
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             string s = "C:\\Users\\Administrator\\Desktop\\1220\\0104\\aaa.txt";
13             string[] ss = s.Split(‘\\‘);
14             for (int i = 0; i < ss.Length; i++)
15             {
16                 Console.WriteLine(ss[i]);
17             }
18         }
19     }
20 }

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace ConsoleApplication1
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             string s = "C:\\Users\\Administrator\\Desktop\\1220\\0104\\aaa.txt";
13             int ss = s.LastIndexOf("\\");
14             Console.Write("文件名是:" + s.Substring(ss + 1));
15         }
16     }
17 }

3.用户从键盘上输入一个邮箱。验证是否正确。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5
 6 namespace ConsoleApplication1
 7 {
 8     class Program
 9     {
10         static void Main(string[] args)
11         {
12             Console.Write("请输入一个邮箱:");
13             string s = Convert.ToString(Console.ReadLine());
14             int a = s.IndexOf(".");
15             int a1 = s.LastIndexOf(".");
16             int b = s.IndexOf("@");
17             int b1 = s.LastIndexOf("@");
18             if (a == a1)
19             {
20                 if (a == 0 || a == s.Length - 1 || a1 == 0 || a1 == s.Length - 1 || b == 0 || b == s.Length - 1 || b != b1 || a - b <= 1 || a1 - b <= 1)
21                 {
22
23                     Console.Write("你输入的邮箱错误");
24                     return;
25                 }
26             }
27             else if (a1 - a != 4 || a == 0 || a == s.Length - 1 || a1 == 0 || a1 == s.Length - 1 || b == 0 || b == s.Length - 1 || b != b1 || a - b <= 1 || a1 - b <= 1)
28             {
29                 Console.Write("你输入的邮箱错误");
30                 return;
31             }
32             Console.Write("您输入的邮箱正确");
33         }
34     }
35 }

时间: 2024-10-30 05:14:34

C#整理3——函数的相关文章

《理解 ES6》阅读整理:函数(Functions)(五)Name Property

名字属性(The name Property) 在JavaScript中识别函数是有挑战性的,因为你可以使用各种方式来定义一个函数.匿名函数表达式的流行使用导致函数调试困难,在栈信息中难以找出函数名.因为这些原因,ES6为所有函数都增加了名字属性. 选择合适的名字(Choosing Appropriate Names) 在ES6中所有的函数都有一个合适的名字属性.来看下面的例子: function doSomething() { //... } var doAnotherThing = func

JS复习—函数(函数的形参和实参没整理,函数的方法待补充,函数化编程待扩展)

函数 一.函数的定义 只定义一次,但可以被执行或调用任意次.JavaScript中函数是参数化的:函数的定义包括一个称为形参的标示符列表,这些参数在函数体中像局部变量一样工作.如果函数挂在在一个对象上,作为对象的一个属性,就称它为对象的一个方法.当通过这个对象来调用函数时,该对象就是此次调用的上下文,也就是该函数的this的值.用于初始化一个新创建的对象的函数称为构造函数. 二.函数的三种定义方式 1.函数声明: 函数声明语句实际上声明了一个变量,并把一个函数对象复制给它. function s

《理解 ES6》阅读整理:函数(Functions)

对于任何语言来说,函数都是一个重要的组成部分.在ES6以前,从JavaScript被创建以来,函数一直没有大的改动,留下了一堆的问题和很微妙的行为,导致在JavaScript中使用函数时很容易出现错误并且可能需要多余的代码实现一些基本的函数行为.在ES6中,函数有一个质的飞跃的改进,它充分考虑到过去数年间JavaScript开发者的需求和抱怨.与ES5相比,在ES6中使用函数开发不容易出错,而且更加灵活. 带默认参数的函数(Functions with Default Parameter Val

javascript学习笔记整理(函数)

javascript函数的声明和调用将完成某一特定功能的代码集合起来,可以重复使用的代码块. 一.函数的声明方式(创建) A.基本语法(function  关键字)function 函数名([参数1],[参数2]....){    函数体    [retrun]  //返回值} function a(){ alert(1) }; B.字面量定义的形式(匿名函数)var 变量=function ([参数1],[参数2]....){    函数体    [retrun]  //返回值} var a=

C++整理——虚函数的使用

由于在公司内一直是在C语言的开发,大多也是在写业务代码,因此对C++的使用越来越生疏.然而最近在公司玩了一个编码比赛最终折戟让我重新意识到用C++的思想来设计工程的重要性.现在借blog重新梳理一下大学所学.如有疏漏不正之处,敬请指出:) C++区别于C语言是因为它有三大特性:封装,继承,多态. 封装要求类内高内聚,类间低耦合.设计类无论在哪个工程里都是一个大学问,至今我也还在摸索TAT.... 继承和多态就是今天主题, 什么是虚函数 虚函数是指在基类中用virtual标识符标识出来的函数.该函

14、C#基础整理(函数)

函数 1.概念:是一个带有输入参数.输出参数.返回值的代码块. 2.写法: 修饰符  返回值类型  函数名(输入参数,输入参数) { 方法段 return 返回值; } 3.注释: (1)输入参数格式:参数类型+变量名.可以不写 (2)返回值类型---void为无返回值,函数体里面不能写return (3)“///”可以调出函数的注释,方便在引用时查看 (4)需要与主函数在同一命名空间下 4.例: public int jiafa(int a,int b) { return a+b; } 5.调

《理解 ES6》阅读整理:函数(Functions)(四)Arrow Functions

箭头函数(Arrow Functions) 就像名字所说那样,箭头函数使用箭头(=>)来定义函数.与传统函数相比,箭头函数在多个地方表现不一样. 箭头函数语法(Arrow Function Syntax) 箭头函数有多种实现方法.比如你想实现一个只有一个参数并且直接返回此参数值的函数: let reflect = value => value; //相当于下面的函数 let reflect = function(value) { return value; }; 上面的例子中,函数只有一个参数

《理解 ES6》阅读整理:函数(Functions)(三)Function Constructor &amp; Spread Operator

增强的Function构造函数(Increased Capabilities of the Function Constructor) 在Javascript中Function构造函数可以让你创建一个新函数,不过这个功能并不经常使用.Function构造函数接收函数参数和函数体作为参数,参数都必须是字符串.下面是一个例子: var add = new Function("first", "second", "return first+second"

php文档知识点整理(函数、方法、文件加载)

函数: 函数定义形式: function  函数名 (形参1,形参2,.... ){ } 函数参数:(2种) 形参: 1,形参一定是一个变量名! 2,该变量名只能是在该函数中有效的变量名: 3,而且只在该函数调用并执行时有效,函数结束,通常这些变量也就"销毁". 实参: 实参就是一个"实际数据", 该数据可以是一个"直接数据"(比如5,"abc"),也可以是一个变量中存储的数据. 实参的作用是将其数据"赋值给&quo