C#函数学习及常用的类

C#函数学习及常用的类

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

好处: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——1-2位的小时
mm——两位的分钟
m——1-2位的分钟
ss——两位的秒
s——1-2位的秒
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.从键盘输入一个正确的身份证号,获取其生日。

string s1 = "367283199003065784";
            Console.WriteLine(s1.Substring(6, 8));

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

方法一

string s2 = "C:\\Users\\Administrator\\Desktop\\1220\\0104\\aaa.txt";
            string[] a = s2.Split(‘\\‘);//注意单引号
            Console.WriteLine("文件名是:" + a[a.Length - 1]);

方法二

int whr1 = s2.LastIndexOf(‘\\‘);
            Console.WriteLine("文件名是:" + s2.Substring(whr1 + 1, 7));

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

//3.用户从键盘上输入一个邮箱。验证是否正确。(正确格式:[email protected])
            Console.WriteLine("请输入邮箱地址:");
            string mail = Console.ReadLine();
            int m = mail.IndexOf(‘@‘);
            int n = mail.IndexOf(‘.‘);
            string[] b = mail.Split(‘.‘);
            int l = b.Length;
            //有且仅有一个“@”,有两个“.”且不相邻
            if (mail.Contains(‘@‘) && mail.IndexOf(‘@‘) == mail.LastIndexOf(‘@‘) && l == 3 && (mail.IndexOf(‘.‘) - mail.LastIndexOf(‘.‘)) < -1)
            {

                if (n - m > 1)
                {
                    Console.WriteLine("格式正确");
                }
                else
                {
                    Console.WriteLine("邮箱不正确");
                }

            }
            else
            {
                Console.WriteLine("邮箱不正确");
            }

时间: 2024-10-12 11:51:04

C#函数学习及常用的类的相关文章

函数复习及常用的类

函数:能够独立完成某个功能的模块.好处:1.结构更清析(编写.维护方便 ).2.代码重用.3.分工开发.四要素:名称,输入(参数),输出(返回的类型),加工(函数体)语法:返回类型 函数名(参数类型 参数名,....){ 函数体} 函数调用:[数据类型 变量名 = ]函数(参数); 函数调用时:调用的参数和函数定义的参数保持一对待:个数,类型,对应. 形参:形式参数.——函数定义的参数.实参:实际参数.——函数调用的参数. 实参.形参传值的规律——传值,传址.传值:参于整型.浮点.bool.ch

Java学习资料-常用流类

1.常用流类 1.1 字节流 1.1.1 InputStream(输入流) 1.1.2 OutputStream(输出流) 1.1.3 FileInputStream(文件输入流) 1.1.4 FileOutputStream(文件输出流) 1.1.5 BufferedInputStream(缓冲输入流) 1.1.6 BufferedOutputStream(缓冲输出流) 1.1.7 PrintStream(打印流) 1.2字符流 1.2.1 Reader类 1.2.2 Writer类 1.2.

Cocos2D学习笔记(1)- 常用的类

1.坐标系 >屏幕坐标系(UIKit):原点在左上角! >OpenGl坐标系:原点在屏幕的左下角! 2.游戏设计:Director--Scene--Layer--Sprite. >CCDirector:导演类,相当于是游戏策划,负责整个游戏的布局和运行规则的制定. >CCScene:场景类,每个场景可以是一个界面或一个关卡. >CCLayer:图层类,为了方便游戏界面的渲染管理. >CCSprite:精灵类, 小结:一个导演类(CCDirector)可以指挥多个场景类(

基本用法:6《学习模块.py :&lt;类class /函数def&gt;》

6 <学习模块.py :<类class /函数def>> 模块常用语句 import x(下面红色框内就是test.py模块,import就是在main.py里调用test.py) if __name__ == '__main__' 下的程序,指定 Python 模拟环境的程序入口(当前正在运行的.py文件),只在当前运行的.py文件生效, 不支持被导入其他.py文件中.Python 本身并没有规定这么写,这是一种程序员达成共识的编码习惯. (1)举例子 1 # 1.举例子 2 #

Python学习—常用时间类与命名元组

常用时间类与命名元组 1. 常用时间类date 日期类time 时间类datetimetimedelat 时间间隔2. 一些术语和约定的解释:1.时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日开始按秒计算的偏移量(time.gmtime(0))此模块中的函数无法处理1970纪元年以前的时间或太遥远的未来(处理极限取决于C函数库,对于32位系统而言,是2038年)2.UTC(Coordinated Universal Time,世界协调时)也叫格林威治天文时间,是

python常用内置函数学习(持续更新...)

python常用内置函数学习 一.python常用内置函数有哪些 dir() 二.每个内置函数的作用及具体使用 1.dir()不带参数时返回当前范围内(全局.局部)的变量.方法和定义的类型列表:   带参数A时返回参数的属性.方法的列表,如何该参数A对象有__dir__(),该方法被调用,如果不含有该方法,该方法不会报错,而是尽可能多的收集参数对象A的信息   实例: 不带参数,在分别在文件全局调用和在函数中局部调用dir()   带参数   原文地址:https://www.cnblogs.c

学习css常用基本层级伪类属性选择器

常见的css选择器包含:常用选择器.基本选择器.层级选择器.伪类选择器.属性选择器,其中常用选择器分为:1.html选择符*{}//给页面上所有的标签设置模式:2.类选择符.hcls{}//给class是hcls的一类标签设置模式:3.id选择符#h3{}//给id是h3的标签设置样式:4.关联选择符#div h1.#div h1.ljhcls:5.div,h1,pmspan,button{}基本选择器分为:first-child第一个.::first-letter第一个字母.::fist-li

C++学习笔记(十二):类继承、虚函数、纯虚函数、抽象类和嵌套类

类继承 在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生. 从一个基类派生的继承称为单继承:从多个基类派生的继承称为多继承. 1 //单继承的定义 2 class B:public A 3 { 4 < 派生类新定义成员> 5 }; 6 //多继承的定义 7 class C:public A,private B 8 { 9 < 派生类新定义成员> 10 }; 我们这篇主要说单继承. 派生类共有三种C++类继承方式: 公有继承(public) 基类的公有成员和保护成

c++学习笔记之基础---类内声明线程函数的调用

近日需要将线程池封装成C++类,类名为Threadpool.在类的成员函数exec_task中调用pthread_create去启动线程执行例程thread_rounter.编译之后报错如下: spfs_threadpool.cpp: In member function ‘int Threadpool::exec_task(task*)’: spfs_threadpool.cpp:174: error: argument of type ‘void* (Threadpool::)(void*)