我的c#的日常学习五

我的c#的日常学习五

目录

我的c#的日常学习五

1.@符号的作用

2.方法重写又称方法覆盖

3.抽象类(是一种规范)

4.接口(是一种规范)

 补充:class前面加一个public具体是什么意思

5.base 关键字:

6.正则表达式


1.@符号的作用

@ 字符串中可以任意换行,换行符及缩进空格都计算在字符串长度之内。

@(称作"逐字字符串")将转义字符(\)当作普通字符对待

2.方法重写又称方法覆盖

方法重写后,子类中的新方法将覆盖原有的方法

Public abstract void show ();

Public override void show();

重写要使用关键字 override  virtual  abstract 都可以被重写

子类可以重写父类中具有相同的方法名、返回类型和参数列表的某一方法。

3.抽象类(是一种规范)

用abstract修饰的类

特点 1.不能实例化对象 2.既可以写静态类的成员也可以写非静态的成员3.可以被其他的类继承

抽象方法 1.用abstract写的方法只有声明没有实现2.抽象方法只能写在抽象类中3.如果说一个非抽象类继承自一个抽象类,那么子类就必须实现父类中所有的抽象方法。

什么时候会使用抽象类

 作用:用来约束所有子类的行为

 补充:进阶多态

1.接口的引用可以指向实现类的对象

2.转型 由实现类类型转型为接口类型(向上转型) 由接口类型转换为实现类类型(向下转型)

3.接口名 I = new 类名 ();

4.接口(是一种规范)

1.接口也是可以继承的,并且是多继承

2.子接口有父接口的所有方法

3.一个类可以实现多个接口

4.Class 类名:接口名

1.如果一个类的:后面既有父类也有接口,一定是父类在前

2.用Interface描述接口

3.定义一个的接口规范

4.接口中的方法不是抽象方法

实现接口方法的注意事项

1.接口中的方法不能有访问权限修饰符

2.但在实现接口的类中一定要加public 不能使用override

3.抽象类实现接口,可以把接口方法实现为抽象方法

4.接口中的方法可以被实现为虚方法(virtual可以被重写)
示例

Interface USB {

Void charge ();  //充电//这些方法都不是抽象方法

Void transportData();//数据传送

}

//让一个类去实现接口

Class mouse:USB{//语法

Public void charge();

Public void transportData();

}

 补充:class前面加一个public具体是什么意思

要想在另一个类中访问到本类  需要对本类进行修饰  用到public访问修饰符  

5.base 关键字:

用于从派生类中访问基类的成员

  • 调用基类上已被其他方法重写的方法。
  • 指定创建派生类实例时应调用的基类构造函数。

1.仅允许基类访问在构造函数、实例方法或实例属性访问器中进行。

2.从静态方法中使用 base 关键字是错误的。

3.所访问的基类是类声明中指定的基类。 例如,如果指定 class ClassB : ClassA,则从 ClassB 访问 ClassA 的成员,而不考虑 ClassA 的基类。

6.正则表达式

作用:判断某一个字符串是否匹配一定的格式

注意  :正则表达式出错时没有代码提示因为 他们本身就是字符串

using System.Text.RegularExpressions;//使用正则表达式的时候必须加上

^ 匹配必须从字符串或一行的开头开始。

$ 匹配必须出现在字符串的末尾或出现在行或字符串末尾的 \n 之前。

[ ] :匹配一位字符,这一位字符可以是这个中括号中的任何一个 。

[1-9]: 这一位字符可取的范围是:[1,9]。

[a-z A-Z]: 这一位字符可取的范围是:[A,Z][a,z]。

[^1-9]: 这一位字符可以是除了[1,9]之间的任意字符。

+: 前面的一位字符连续出现了1次或者是多次。

*: 前面的一位字符连续出现了0次或者是多次。

?: 前面的一位字符连续出现了0次或者是1次。 

{m}:前面的一位字符连续出现了m次。

{m,}:前面的一位字符连续出现了至少m次。

{m,n}:前面的一位字符出现了m到n次。

\d:等价于[0-9]

\D: 等价于[^0-9]

:   是通配符号

():用来表示一个分组

获取每一个分组的字符串

Match match =regex .match()//regex 带的方法

public static string checkphone(string phone)

        {

            string pattern = "^(1[34578]\\d)(\\d{4})(\\d{4})$";

            Match match = Regex.Match(phone,pattern );//获取一个匹配的结果

            GroupCollection grops = match.Groups;//获取所有的分组

            string grops1 = grops[1].Value;

            string grops2 = grops[2].Value;

            return grops1 + "****" + grops2;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值