索引器实战:对象数组访问技巧及命名空间以及项目文件规范

接上期:

索引器

1,一般情况下,对象的属性;可以使用对象.属性访问, 也可以类名.属性进行访问

2,索引的作用:允许对象可以像数组一样通过对象[索引]进行访问

3,索引器属性

数组对象[3]
添加一个属性类型为添加元素的类型
属性名: this[int index];

4,下面根据相关代码进行详细分析:

【1】,创建ClassRoom对象

ClassRoom cs = new ClassRoom() { Id=67,Name = "机器视觉"};
cs.Add(new Student() { Name = "张三", Age = 19 });
cs.Add(new Student() { Name = "不吃香菜", Age = 19 });
cs.Add(new Student() { Name = "猪猪小野", Age = 19 });
cs.Add(new Student() { Name = "东北雨姐", Age = 19 });

【2】,通过索引值的访问方式 访问里面的元素, 以数组索引值访问方式来进行访问 cs[0]访问方式

Console.WriteLine(cs.Id);
Console.WriteLine(cs[0].Name);
Console.WriteLine(cs[1].Name);
Console.WriteLine(cs[2].Name);
Console.WriteLine(cs[3].Name);

【3】,修改room对象添加的元素

cs[0]=new Student() { Name="惠义敬",Age=20};//以数组索引值访问方式
Console.WriteLine(cs[0].Name);

【4】,验证使用arr["字符串"]方式访问元素

cs["猪猪小野"] = new Student() { Name = "余伟", Age = 18 }; //arr[""]进行修改
Console.WriteLine(cs["余伟"].Name);//arr[""]进行获取

Console.ReadKey();
}

}

【5】,创建一个学生类

public class Student
{
public string Name { get; set; }
public int Age { get; set; }

}

【6】,班级类: 封装成一个具备添加学生成员的类

public class ClassRoom
{
public int Id { get; set; }//班级的编号
public string Name { get; set; }//班级的名称
public List<Student> list = new List<Student>();//存放添加的学生
//添加学生对象
//Add(添加张三对象)
public void Add(Student a)
{
list.Add(a);

}

【7】,添加一个属性类型为添加元素的类型 也就是38行添加的元素类型

public Student this[int index]//arr[0]
{
get
{
Console.WriteLine("数组索引值的访问方式:arr[0]");
return list[index]; //get获取arr[0]访问方式的值
}
set
{
Console.WriteLine("数组索引值的访问修改的时候:arr[0]=对象");
list[index] = value;//set在设置值的时候触发 arr[0]=对象
}
}

【8】,重载索引器 索引器是字符串类型, 以后访问的时候可以通过

arr["张三"] 找到名字为张三的对象

一,命名空间以及项目文件规范

1,using 后面只能跟命名空间

2, 解决方案 > 项目> 类文件.cs> nameSpace > 类 > 类成员和方法 > 代码

3, namespace 命名空间名称主要以大驼峰德命名法进行命名 随着代码的逐渐增多, 如果把所有代码写在同一个文件里面,会造成代码冗余

4, 命名空间允许把代码写在不同文件里面, 可以通过命名空间进行相互引用

5, 命名空间包含类、接口、抽象类、枚举、结构体等 也可以嵌套命名空间 不允许在命名空间下直接定义方法和属性、字段

二,命名空间以及项目文件规范具体操作实现:

1,在同一个类文件不同类引用直接使用, 例如本类文件中People

People p1 = new People();

2,针对在同一个命名空间下的不同类文件的相互引用 也可以直接使用 例如创建Car.cs类文件

Car car = new Car();

右键

然后找到添加点新建项:

点击类,最下面是命名

3,当类文件不在同一个命名空间 并且在同一个项目下

使用方法1 先把命名空间通过using添加到上面

Book book = new Book();

使用方式2 直接把命名空间添加到代码上

Test.Book book2 = new Test.Book();

Ed a2= new Ed();

4,如果在项目里面添加了一个文件夹, 在文件夹里添加的类文件自动以文件名为命名空间

Class1 c1 = new Class1();
_004__命名空间以及项目文件规范.Model.Class1 c2 = new _004__命名空间以及项目文件规范.Model.Class1();

依旧右键**点击添加 找到新建文件夹即可**

5,方法1 可以把命名空间直接添加到类前

Test1.Book c3= new Test1.Book();

方法2 把类添加到别名进行使用 //using MyTest1 = Test1.Book;

MyTest1 c4 = new MyTest1();

6,不同项目下类文件相互使用 使用第三个访问器课件

点击项目的引用 ---> 右键添加引用 --->找到项目---> 找到对应的项目---->添加命名空间
ClassRoom r1 = new ClassRoom();

相关推荐
奋斗吧程序媛21 小时前
常用且好用的命令
前端·编辑器
LXS_35721 小时前
C++常用容器(下)---stack、queue、list、set、map
开发语言·c++·学习方法·改行学it
老骥伏枥~21 小时前
C# 运算符优先级易踩坑
c#
愚者游世21 小时前
list Initialization各版本异同
开发语言·c++·学习·程序人生·算法
2301_7965125221 小时前
【精通篇】打造React Native鸿蒙跨平台开发高级复合组件库开发系列:Lazyload 懒加载(懒加载的图片)
前端·javascript·react native·react.js·ecmascript·harmonyos
敲敲了个代码1 天前
从N倍人力到1次修改:Vite Plugin Modular 如何拯救多产品前端维护困境
前端·javascript·面试·职场和发展·typescript·vite
Poetinthedusk1 天前
WPF应用跟随桌面切换
开发语言·wpf
Yff_world1 天前
网络安全与 Web 基础笔记
前端·笔记·web安全
Sapphire~1 天前
Vue3-19 hooks 前端数据和方法的封装
前端·vue3
Hello World . .1 天前
数据结构:二叉树(Binary tree)
c语言·开发语言·数据结构·vim