C#软件下

7.分支语句

通过条件表达式,控制某个代码片段是否执行

if单分支语法

if(bool条件表达式)

{ // true 执行 false 不执行}

else

{ // false 执行}

双分支语法

if(bool){

// true 执行,其他分支不执行 false 继续往下验证

}

else if(bool){

// true 执行,其他分支不执行,false 继续往下看

}

else {

//所有的条件表达式返回值都是false执行

}

多分支

switch(变量)(

case

值1

// 代码块,执行语句

break:

default:

// 执行语句,所有case 都不执行 执行这里

break

}

8.循环语句

循环: 将一段有规律的重复执行的代码片段

分类

  • for
  • while
  • do.while
  • foreach

循环嵌套

  • 循环嵌套执行特点[程序执行的运算过程]
  • 内循环动态变化

9.函数

封装思路

基本结构

修饰符 返回值类型 函数名(参数1,参数2...)

{

//方法体

}

修饰符:

  1. static 决定: 函数的调用方式:
    1. 类名.函数名() 语法: class.Function()
    2. 实例.函数名() 语法:varName. Function()
  1. 约束函数的访问权限,换句话: 函数能都在哪里使用:
    1. public 公共的: 在任意的.cs文件中或者任意类中.
    2. private 私有的: 本类的函数中
    3. protected 继承的: 本类以及子孙类的函数中

函数名:

  • 大驼峰,字母数字下划线
  • 根据函数的作用,取名字

返回值return

  • 输出函数表达式运算结果. 注意:需要重新创建一个变量接收
    • 与ref out不同, ref与out 函数外部已经存在变量了
  • 结束函数语句

注意事项

  1. 函数中声明的变量,局部变量只能在函数内部使用
  2. 函数执行时,会声明变量.赋值...函数执行结束,变量销毁.
  3. 函数每次执行都是初始化
  4. 只能在class类中定义函数

如何提升函数封装能力:

  1. 确定函数作用: 你要明白你要写什么内容
  2. 搭建函数基本结构: 函数名. 参数定义. 返回值类型.返回值初始化
    1. 掌握形参的意义, 在函数中怎么用的?
    2. 掌握返回值的意义,怎样通过形参求得返回值
  1. 调用函数,检查参数是否传递.
  2. 分析求返回值的基本思路:
  3. 验证函数作用是否完成: 通过函数调用传参的方式.

函数执行的时候, 函数创建的变量会在堆内存中开辟空间, 当函数执行结束; 释放内存的空间;

10.C#内置对象

1. 字符串

特点:

  1. 有索引, 从0开始,
  2. 有长度, length 表示字符个数
  3. 与字符串有关的api

String 表示 System.String类型

str 表示字符串对象

2. 增加

String.Concat(string strA,string strB)

作用: 将参数字符串合并为一个新的字符

参数: strA

strB

结果: string 表示 strA str合并后的字符

原理: 将参数拼接在一起

3. 删除

str.Romove(int index,int count);

作用: 在str中从index为值开始 删除count个字符

参数: index 表示从哪个索引值开始

count 表示删除几个字符

结果: string 表示: 基于str删除几个字符后的结果

注意: str字符没有变化, 返回结果为删除的运算结果

如果参数没有count表示删除index后所有字符

原理;

1:创建一个空字符串

2:找到str中index的位置,以及从index往后数count的位置

3:除了以上位置中的字符串,其他都拼接到res上

4. 修改

方式一: 先删除几个字符,在插入几个字符,适合: 从某个索引值开始修改内容

str.Remove(index,count);

str.Insert(int index,string value);

作用: 在str的index位置处插入value字符串

参数: index 表示从哪个索引值开始

value 表示被插入的字符串

结果: string 表示基于str插入value后的字符串

注意: str不会改变

方式二: Replace 替换 适合:指定字符被修改

5. 查询

str.IndexOf(string value)

作用 : 查询value在str中第一次出现的位置

参数:: int 类型

-1 表示验证的参数在str中不存在

其他: 表示参数在str第一次出现位置

原理:

  1. 根据参数创建正则表达式
  2. 用正则表达式去str中匹配, 获取所有匹配结果
  3. 在所有结果中,找到第一个匹配结果,读取index属性并return输出

6. 验证

str. Contains(string value);

作用: 验证value在str中是否存在

结果: bool类型 ture 存在 false 不存在

str.IndexOf()

根据返回结果是否为-1,判断是否存在

原理:

  1. 根据参数创建正则表达式
  2. 正则表达式匹配str, 查看匹配结果的数量;
  3. 匹配数量为0表示不存在 非0存在

7. 插入

str.Remove(index,count);

str.Insert(int index,string value);

作用: 在str的index位置处插入value字符串

参数: index 表示从哪个索引值开始

value 表示被插入的字符串

结果: string 表示基于str插入value后的字符串

注意: str不会改变

原理

  1. 找到str中index位置
  2. 将value拼接到str上
  3. 在拼接后面的内容

8. 替换

str.Replace(string old,string new);

作用: 将new字符替换str中old字符; 返回,替换后的新字符

参数: old 表示被替换的字符, str 中不存在不报错, 可以是正则表达式

new 表示新字符, 用于替换

结果: string 表示 str替换old后的新字符;

注意: str 不变

原理:

  1. 删除str中old字符串: 并找到出现的位置, 将new 插入到str中.
  2. 如果old出现多次, 反复执行1

替换的本质: 删除和插入

9. 比较

string.Compare(string strA, string strB);

作用: 比较两个参数是否相同

结果: bool true 相等 false 不相同

string.Equals(string a, string b);

作用: 比较两个参数是否相等

结果: bool true 相同 flase 不相同

注意: Equals是Object上的公共方法, string通过重写方式, 重新定义了该函数的功能.

10. 数据类型转换转化

  1. 将字符串变为字符串数组?

str.Split(string val);

作用: 根据val切割字符串,将切割后的字符串片段放到字符串数组中

参数: val 表示: str中被切割的字符串.

注意: 结果数组中,没有val字符串

结果: string[] 字符串数组.

用途: 用于实现字符串变为字符串数组类型转化

  1. 数组变为字符串

string,Join(string str , string[] arr);

作用: 将arr数字元素与str拼接成一个字符串

参数: str string 表示: 链接数组元素字符串

arr 字符串数组 表示: 需要变为字符串的数组

结果: string

3.其他类型转化为字符串

ToString();

作用: 将其他类型转化为字符串类型.

11. 其他方法

str.Trim()

作用: 去除首位空格

str.ToLower()

作用: 将英文字母变大写

str.ToUpper();

作用: 将英文字母变小写

String.Format(string value, Object args)

作用: 将value 表示: 需要被格式化的字符串

Object 表示: C#中特殊格式符号

12. 验证匹配结果

正则在: System.Text.Regex类上

Regex.Matches(string str, string pattren);

作用: 在str中匹配出所有满足pattern表达式的结果,并将匹配结果放在集合中

参数: str string类型 表示原字符串, 需要被匹配的字符串

pattern string类型 表示正则表达式.

结果: MatchCollection 表示存放匹配结果的集合。集合中类型为 Match实例对象

Match对象上属性如下:

index

匹配字符片段在str原字符串中出现的索引值

Length

匹配字符片段的长度

Value

匹配字符片段

Regex.lsMatch(string str, string pattern)

作用: 验证str是否满足正则表达式pattern的规则

参数: str 表示:被验证的字符串

pattern 表示:验证规则的正则表达式,一般有开头和结尾

结果: bool true 表示满足规则 false 表示不满足规则

13. 日期和时间DataTime

主要用于解决程序中时间的问题:

  1. 时间展示格式
  2. 时间与时间的间隔
  3. 时间戳
  4. 求某一个日期经过一个时间段后的日期是什么

1:根据日期创建时间对象

2: 通过方法:求相关问题

c#

1. Array

什么时候用?

Array是静态数组;

1: index 索引值

2: item 数组元素,数组元素相同

3: Length 长度,表示数组元素个数. 长度不能改变

创建方式:

Type[] varName = {item,item};

创建方式二:

Type[] varName =new Type[Length];

分类:

  • 多维数组: 内层长度一样, 类型一样
  • 交错数组: 内层长度不一样, 类型一样
  • 函数参数组: 一维度数组

常见处理方式:

  • 修改
  • 查询
  • 排序
  • 颠倒

数组

数组用于保存一组数据。

数组的特点:

  • 数组长度必须固定。
  • 数组中每个元素的数据类型必须一致。
  • 数组元素通过下标来访问,下标从0开始。

其他类型转化为数组

1: 字符串转化数组

str.Split

2: 集合转化为数组

TypeCollection.ToArray():

作用: 转化为默认的object[]数组

参数: System类库:

默认: System.Object

例如:System.String

(string[])al.ToArray(typeof(string))

1:typeof(string) ===> System.String

(string[])al.ToArray((string))

一、一维数组

数组的声明:

int[] arr;

数组的定义:

int[] arr;
arr = new int[5];

数组的声明+定义:

int[] arr = new int[5];

通过下标给数组赋值:

int[] arr = new int[5];
arr[0] = 100;
arr[1] = 80;
arr[2] = 70;
arr[3] = 60;
arr[4] = 50;

数组的初始化:

int[] arr = {85,98,75,84,56,87};
//或
int[] arr = new int[]{85,98,75,84,56,87};
//或
int[] arr = new int[5]{85,98,75,84,56,87};

通过循环进行数组的输出:

int[] arr = new int[]{85,98,75,84,56,87,75};
for (int i = 0; i < arr.Length; i++) {
    Console.WriteLine(arr[i]);
}

二、二维数组

多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组 。

二维数组也可以理解成具有行和列的矩阵。

例如:(以下代码即定义了一个3行4列的矩阵,一共12个子元素)

int[,] arr = new int[3,4];

二维数组的初始化:

int[,] arr = new int[3,4] { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };

二维数组的遍历:

for (int i = 0; i < arr.GetLength(0); i++)
{
    for (int j = 0; j < arr.GetLength(1); j++)
        {
            Console.Write(arr[i,j] + "\t");
        }
    Console.WriteLine("");
}

二维数组也可以先定义第一维,然后为每一行定义第二维的长度:

//一个一个元素进行赋值
//string[][] arr = new string[2][];
//arr[0] = new string[2];
//arr[1] = new string[3];
//arr[0][0] = "Good";
//arr[0][1] = "Luck";
//arr[1][0] = "to";
//arr[1][1] = "you";
//arr[1][2] = "!";

//初始化进行赋值
string[][] arr = new string[2][] {
    new string[2] { "Good", "Luck" },
    new string[3] { "to", "you", "!" }
};
for (int i = 0; i < arr.Length; i++)
{
    for (int j = 0; j < arr[i].Length; j++)
    {
        Console.Write(arr[i][j] + "\t");
    }
    Console.WriteLine("");
}

三:多维数组

int [ , , ] m;

四:交错数组

交错数组是数组的数组。

交错数组是一维数组。

声明一个带有int值的交错数组scores

int [][] scores;

声明一个数组不会在内存中创建数组。创建上面的数组:

int[][] scores = new int[5][];
for (int i = 0; i < scores.Length; i++) 
{
    scores[i] = new int[4];
}

初始化一个交错数组

int[][] scores = new int[2][]{new int[]{92,93,94},new int[]{85,66,87,88}};

其中,scores 是一个由两个整型数组组成的数组 -- scores[0] 是一个带有 3 个整数的数组,scores[1] 是一个带有 4 个整数的数组。

代码:

using System;

namespace ArrayApplication
{
    class MyArray
    {
        static void Main(string[] args)
        {
            /* 一个由 5 个整型数组组成的交错数组 */
            int[][] a = new int[][]{new int[]{0,0},new int[]{1,2},
                                    new int[]{2,4},new int[]{ 3, 6 }, new int[]{ 4, 8 } };

            int i, j;

            /* 输出数组中每个元素的值 */
            for (i = 0; i < 5; i++)
            {
                for (j = 0; j < 2; j++)
                {
                    Console.WriteLine("a[{0}][{1}] = {2}", i, j, a[i][j]);
                }
            }
            Console.ReadKey();
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值