9.12 9.13 C#

本文围绕C#展开,介绍了字符串常用方法,如ToUpper、ToLower等,还阐述了字符串是引用类型、不可变等特点。同时讲解了枚举和结构体的语法及使用场景,最后介绍了继承的概念、好处、语法格式,以及通过类视图查看类的继承关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串常用方法

ToUpper()

作用:将字符转换成大写形式,仅对字母有效。返回值是转换后的字符串。使用:字符串变量.方法名();例如:name.ToUpper();

ToLower()

作用:将字符转换成小写形式,仅对字母有效。返回值是转换后的字符串。使用:字符串变量.方法名();例如:name.ToUpper();

Equals() 

作用:比较两个字符串是否相同。相同返回真,不相同返回假。使用:字符串变量.方法名(要比较的字符串变量);例如:name.Equals(name2);

Split() 

作用:分割字符串。返回字符串类型的数组。使用:字符串变量.方法名(用于分割的字符数组); 例如:name3.Split(m_char);

Substring() 

作用:截取字符串。返回截取后的子串。使用:字符串变量.方法名(开始截取的位置);

字符串变量.方法名(开始截取的位置,截取多长);

例如:name.Substring(2);      //从角标为 2 的位置,截取到最后; name.Substring(2,2);    //从角标为 2 的位置,截取 2 个字符;

IndexOf()

作用:查找某个字符串在字符串中第一次出现的位置。返回所在的索引位置值。如果没有找到,返回-1。使用:字符串变量.方法名(子字符串); 例如:name.IndexOf(“on”);

LastIndexOf()

作用:查找某个字符串在字符串中最后一次出现的位置。返回所在的索引位置值。如果没有找到,返回-1。使用:字符串变量.方法名(子字符串); 例如:name.IndexOf(“on”);

StartsWith()

作用:判断是否以...字符串开始。如果是,返回真;如果不是,返回假。 使用:字符串变量.方法名(子字符串);演示:name.StartsWith(“Mo”);

EndsWith()

作用:判断是否以...字符串结束。如果是,返回真;如果不是,返回假。 使用:字符串变量.方法名(子字符串);演示:name.EndsWith(“key”);

Replace() 

作用:将字符串中的某个字符串替换成一个新的字符串。返回新的字符串。使用:字符串变量.方法名(旧字符串,新字符串);演示:name.Replace(“Mon”, “CODE”);

Contains() 

作用:判断某个字符串中是否包含指定的字符串。如果包含返回真,否则返回假。使用:字符串变量.方法名(子字符串);例如:name.Contains(“key”);

Trim() 

作用:去掉字符串中前后空格。返回处理后的字符串。使用:字符串变量.方法名();例如:address.Trim();

TrimEnd()

作用:去掉字符串结束后的空格。返回处理后的字符串。使用:字符串变量.方法名();例如:address.TrimEnd();

TrimStart()

作用:去掉字符串开始前的空格。返回处理后的字符串。使用:字符串变量.方法名();

例如:address.TrimStart();

IsNullOrEmpty()

作用:判断一个字符串是否为Null 或者空。如果为null 或者空,返回真;否则返回假。null 是不占内存空间的,而空字符串(“”)是占内存空间的。使用:string.方法名(字符串变量);例如:string.IsNullOrEmpty(name);

2.字符串的特点

1.字符串是引用类型

字符串的数据是存储在堆空间,在栈空间中存储了该数据的引用地址。

2.字符串是不可变的

当你给一个字符串变量重新赋值时,旧值并没有销毁,而是重新开辟一块空间来存储新值。

3.字符串可以看做是是自读的字符数组

使用字符串变量[下标]的形式可以取字符串中指定的字符。 也可以使用for 循环变量数组。

字符串变量.Length;可以取得字符串字符的个数。

枚举

枚举:enum。说白了就是一个数据类型,同样是用于存储数据的。

和之前学习过的的 int,float,double,string ....... 一样;只不过 int,float

这些类型是系统定义好的,我们直接可以使用。而枚举类型是需要我们使用者根据实际的开发需要来自行定义的。

  1. 何时需要用到枚举?

比如说在案例中,我们需要重复的使用到“星期一”到“星期天”这些特定的字符串,我们就可以定义一个叫做“星期”的枚举。

如果不定义成枚举,各位的写法可能就千奇百怪,比如:“周一”,“星期一”, “Monday”这三个表示的是同一天。

定义枚举的目的,就是规范一些数据的值。

枚举语法

定义枚举类型

枚举类型定义在什么地方?枚举定义在 namespace 下,这样在当前的命名空间下,所有的类(class)都可以使用该枚举。

语法:

public enum 枚举名

{

值 1,

值 2, 值 N

}

使用枚举类型

枚举类型 变量名 = 枚举类型.值;

枚举应用案例

使用前提 枚举类型往往是一些事先定义好的,在项目中公共使用的一些数据。

应用案例

比如说:“切水果”这款游戏,里面有很多很多的水果,我们就可以定义一个叫做“水果”的枚举类型。RPG 游戏中,通常有不同的职业,比如“战士”,“法师”,“精灵”等等职业,我们就可以定义一个叫做“职业”的枚举类型。

结构体

什么是结构体? 结构体:struct。结构体是一种值类型,通常用于封装一些小型变量数据。

结构体和我们后续要着重讲解的“对象”有很多类似和一样的地方,可以把结构体当成一个迷你版的对象来使用。

Untiy3D 中的结构体

在Unity3D 中提供了很多结构体类型的数据。比如:Vector3(三维向量), Color(颜色),Quaternion(四元数),Ray(射线)等等

结构体语法

声明结构体

public struct 结构体名称

{

     public 数据类型 变量名;

     public 数据类型 变量名;

     public 数据类型 变量名;

  }

参数说明:

public :访问修饰符,后期会详细讲解。

struct:关键字,用于声明结构体。

①声明一个Person 结构体,保存一些基本数据。姓名,年龄,性别,地址。

使用结构体

①创建结构体类型的变量:

结构体类型 结构体变量名 = new 结构体类型();

Person monkey = new Person();

②给结构体赋值:

结构体变量名.变量名 = 值;

monkey.age = 27;

③结构体取值:

结构体变量名.变量名;

monkey.age;

继承

什么是继承?

面向对象开发有三大特性(特点 / 特征):封装,继承,多态。

将一堆类中的一些共有的“成员”单独抽取出来,作为一个父类,然后这一堆类继承这个父类,共享父类的资源,这就叫做继承。

继承的好处

①优化代码结构,让类与类之间产生关系(人不是孤立存在的,类也一样);

②提高代码的复用性,便于阅读(写更少的代码,干更多的活);

③为“多态”提供前提(多态是面向对象最复杂的一个特性,后面重点讲解)。

继承的语法格式

英雄选择界面分析

四个英雄公共数据向上抽取,抽象成一个Hero 类,然后四个英雄继承这个Hero 类,然后编写各自特有的类成员。

语法格式

子类继承父类,使用“:”冒号关键字符。class 子类:父类

{

//类成员;

}

类视图

当前项目上右键-->视图-->查看类图

可以看到类的继承关系图,以及类中的成员概况。各位留意一下字段,属性,方法各自特有的图标。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值