函数:能够独立完成某个功能的模块。

好处:1.结构更清析(编写、维护方便 )。2.代码重用。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

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

递归——仅做了解。

函数自己调自己。

static void Main(string[] args)

{

Test(0);

}

static void Test(int a)

{

//if条件的return很重要,没有的话就永远出不来了。

if(a >5)

{

return;

}

a++;

Console.WriteLine("正在做第"+a+"个梦");

Test(a);

Console.WriteLine("第"+a+"个梦醒了");

}

常用的类:

(一)数学类: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.从键盘输入一个正确的身份证号,获取其生日。

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

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

例1:

class Program

{

static void Main(string[] args)

{

//Console.WriteLine("您刚才调用程序时,传进来的是"+args[0]);

Console.Write("请输入三个数:");

int x = Convert.ToInt32(Console.ReadLine());

int y = Convert.ToInt32(Console.ReadLine());

int z = Convert.ToInt32(Console.ReadLine());

int zd = Max(x, y);

zd = Max(zd, z);

}

static int Max(int a,int b)

{

if(a>b)

{

return a;

}

else

{

return b;

}

}

}

例2:

class Class1

{

static void Main(string[] args)

{

int m = 30;

Console.WriteLine("Main函数第一次打印:" + m); //30

Add1( m);

Console.WriteLine("Main函数第二次打印:" + m); //30

Console.WriteLine("Main函数第三次打印:" + m); //30

Add2(ref m);

Console.WriteLine("Main函数第四次打印:" + m);//50

}

static void Add1( int a)

{

Console.WriteLine("Add1传值函数第一次打印:" + a); //30

a += 20;

Console.WriteLine("Add1传值函数第二次打印:" + a); //50

}

static void Add2(ref int a)

{

Console.WriteLine("Add2传址函数第一次打印:" + a); //30

a += 20;

Console.WriteLine("Add2传址函数第二次打印:" + a); //50

}

}

例3:

class Class3

{

static void Main(string[] args)

{

int m = 30;

int n = Add(m);

Console.WriteLine(m); //30

}

static int Add(int a)

{

a += 20;

return a;

}

}

例4:猴子吃桃

class Class5

{

static void Mai6n(string[] args)

{

int m = TaoZi(1); //求第一天的桃子数

Console.WriteLine(m);

}

/// <summary>

/// 求每天的桃子数

/// </summary>

/// <param name="a">第几天</param>

/// <returns>该天桃子数</returns>

static int TaoZi(int a)

{

if(a == 7)

{

return 1;

}

int n = (TaoZi(a + 1) + 1) * 2;

return n;

}

}

C# 8 函数 调用 常用类 时间 日期型的更多相关文章

  1. 深入理解Java常用类-----时间日期

    除了String这个类在日常的项目中比较常用之外,有关时间和日期的操作也是经常遇到的,本篇就讲详细介绍下Java API中对时间和日期的支持.其实在Java 8之前时间日期的API并不是很好用,以至于 ...

  2. day15--Java常用类之日期相关类

    Java常用类 3.日期相关类 3.1Date类 在标准Java类库中包含一个Date类,它的对象表示一个特定的瞬间,精确到毫秒.在网上商城下单时,在对报销单进行审核时,都需要获取当前的时间,通过Da ...

  3. MySQL中的数据类型 [数值型、字符串型、时间日期型]

    MySQL中的数据类型 [数值型.字符串型.时间日期型] MySQL中各数据类型 1. 数值类型(整型) 类型 数据大小 类型 (无符号:unsigned) 数据大小 存储空间 tinyint -12 ...

  4. 常用API - 时间日期类

    Date类 概述 java.util.Date类 表示特定的瞬间,精确到毫秒. 继续查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把毫秒值转成日期 ...

  5. Java基础——常用类之日期时间类

    如果有机会,请尝试Java8中全新的时间日期API!(参见Java8新特性随笔) 如果还是使用Java7及之前的版本,那么你可以尝试一些工具类(参考使用工具类相关的Hutool-DateUtil) 如 ...

  6. 常用类(日期时间格式转换,date,枚举)

    1 常用类 1.1 日期时间类 计算机如何表示时间? 时间戳(timestamp):距离特定时间的时间间隔. 计算机时间戳是指距离历元(1970-01-01 00:00:00:000)的时间间隔(ms ...

  7. mysql 常用的时间日期函数小结

    本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now()  :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...

  8. MYSQL常用的时间日期函数

    #时间日期函数 #获取当前日期XXXX-XX-XXSELECT CURRENT_DATE(); SELECT CURDATE();#效果与上一条相同 #获取当前日期与时间XXXX-XX-XX XX:X ...

  9. Object类.时间日期类.System类.Stringbuilder类.包装类

    Object类 java.lang.Object类是java语言中的根类,即所有类的父类.它中描述的所有方法都可以使用.在对象实例化的时候,最终找的父类就是Object. 如果一个类没有特别指定父类, ...

随机推荐

  1. 那些 Cynthia 教我的事 之 PMSec (一)

    一.ViewState的使用 在项目中,我一直在用Common的方法读取一些信息,但是Cynthia习惯将它存入ViewState中. ViewState 它是由ASP.NET页面框架管理的一个隐藏的 ...

  2. C# 关于out关键字的用法(一个方法返回多个值的问题)

    通常一个方法只能返回一个值,但是如果在某些时候,我们想要返回多个值,例如某个方法将一个浮点数分割成一个整数和一个小数返回去.这个时候我们就要用到out关键字. 如果用ref也可以解决,但是用ref需要 ...

  3. dojo.hasClass/dojo.addClass/dojo.removeClass/dojo.toggleClass/dojo.repalceClass

    dojo.hasClass(/*DomNode*/node or DomIdstring,/*String*/classString)//如果节点中有特定的类,那么返回ture,否则返回false d ...

  4. Android常用组件Broadcast介绍

    一.Broadcast简介 Broadcast是Android的四大组件之一.可分为: 1.普通广播 发送一个广播,所有监听该广播的广播接收者都可以监听到改广播. 2.异步广播 当处理完之后的Inte ...

  5. JQ 操作样式,背景切换

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. C++标准程序读书笔记-第三章错误和异常处理

    1.命名空间(namespace)std C++标准程序库中的所有标示符都被定义于一个名为std的namespace 2.标准异常类别 (1)语言本身或标准程序库所抛出的所有异常,都派生自基类exce ...

  7. java中静态代码块的用法 static用法详解

    (一)java 静态代码块 静态方法区别一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序 ...

  8. Piggy-Bank (hdoj1114)

    Piggy-Bank Problem Description Before ACM can do anything, a budget must be prepared and the necessa ...

  9. Python 函数 切片 迭代 列表生成器

    函数 编写     定义一个函数要用def语句    def sum(i,n):   ⚠有冒号 返回多值     实际上是返回一个tuple 定义默认参数    默认参数的作用是简化调用   def ...

  10. 阿里云 centos 修改iptables

    一.检查iptables服务状态 首先检查iptables服务的状态 [root@woxplife ~]# service iptables status iptables: Firewall is ...