C#索引器封装

1、学生数据类

public class Student

{

public  Student()

{ }

public  Student(string no,string name)

{

this.StudentNo = no;

this.StudentName = name;

}

private string studentNo;

private string studentName;

/// <summary>

/// 学号

/// </summary>

public string StudentNo

{

get

{

return studentNo;

}

set

{

studentNo = value;

}

}

/// <summary>

/// 姓名

/// </summary>

public string StudentName

{

get

{

return studentName;

}

set

{

studentName = value;

}

}

}

2、数组

public class MyList

{

/// <summary>

/// 数组元素实际个数

/// </summary>

private  int count;

Student[] stus = new Student[4];

#region 元素个数

public int Count

{

get

{

return count;

}

set

{

count = value;

}

}

#endregion

#region 添加元素

public void Add(Student item)

{

if (Count == stus.Length)

{

Student[] newstus = new Student[stus.Length * 2];

stus.CopyTo(newstus, 0);

stus = newstus;

}

stus[count] = item;

count++;

}

#endregion

#region 获取元素

public Student Get(int index)

{

return stus[index];

}

public Student Get(string name)

{

for (int i = 0; i < count; i++)

{

if (stus[i].StudentName == name)

{

return stus[i];

}

}

return null;

}

#endregion

#region 索引器

public Student this[int index]

{

get

{

return stus[index];

}

set { stus[index] = value; }

}

public Student this[string name]

{

get

{

for (int i = 0; i < count; i++)

{

if (stus[i].StudentName == name)

{

return stus[i];

}

}

return null;

}

set

{

for (int i = 0; i < count; i++)

{

if (stus[i].StudentName == name)

{

stus[i] = value;

}

}

}

}

#endregion

}

3、调用

static void Main(string[] args)

{

MyList ml = new c0index.MyList();

ml.Add(new Student("001","aa"));

ml.Add(new Student("002", "bb"));

ml.Add(new Student("003", "cc"));

ml.Add(new Student("004", "dd"));

ml.Add(new Student("005", "ee"));

for (int i = 0; i < ml.Count; i++)

{

Console.WriteLine(ml[i].StudentName);

}

}

时间: 2024-10-05 06:41:07

C#索引器封装的相关文章

ylbtech-LanguageSamples-Indexers(索引器)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Indexers(索引器) 1.A,示例(Sample) 返回顶部 “索引器”示例 本示例演示 C# 类如何声明索引器以提供对类的类似数组的访问. 安全说明 提供此代码示例是为了阐释一个概念,它并不代表最安全的编码实践,因此不应在应用程序或网站中使用此代码示例.对于因将此代码示例用于其他用途而出现的偶然或必然的损害,Microsoft 不承担任何责任. 在 Visual Studio

010.里式转换、命名空间、字段属性、索引器

1.is asis:判断对象和类型的兼容 兼容---true 不兼容---false 子类兼容父类 子类对象 is 父类类型 --true对象 is 类型 (对象为此类型的对象 对象为此类型的子类的对象 --true)public class Person{}public class Student:Person{} Person per=new Person();Student stu=new Student();Person person=new Student();返回true:per i

使用C#索引器轻松访问iBoxDB中的数据

使用SQL访问一个数据的操作是 select * from Table where ID=1 通过封装一般简化为类似如下的操作 DB.Find( "Table", 1); 在 iBoxDB 中借助C#索引器,操作简化到 DB["Table",1]; 一个简单但完整使用Xamarin结合iBoxDB开发Android应用的例子 var db = new DB (1, System.Environment.GetFolderPath ( System.Environme

this关键字和索引器

一.this关键字 在C#中,this关键字有以下3种常见的用法: 1.用在类的属性.实例方法或实例构造方法中,区分成员名和本地变量(或参数).下面的示例声明一个名为Myclass的类,类中包括一个实例字段myVal和一个实例构造函数,该构造函数带一个名为myVal的参数,在方法中,通过this可以在语义上区分成员名myVal和参数名myVal.(注意:在实际编程中是不建议参数名和字段名相同的,这样做降低了代码的易读性,这里只是为了说明this关键字的用法而已). 1 class MyClass

修饰符|值类型、引用类型|List|索引器

1.简述private.protected.public.internal 修饰符的访问权限 private:私有成员,在类的内部可以访问 protected:保护成员,在该类内部和继承类中可以访问 public:公共成员.无访问限制 internal:当前程序集可以访问 ---延伸 类的实例化,(如何使用类?),用关键字new 类 实例名=new 类(): 字段,方法.属性都类的成员:member 都要加访问级别? 访问级别的用处在于控制成员在哪些地方可以被访问,达到面向对象中"封装"

C#中的索引器

无法通过方法来知道索引器的长度,只能设定一个固定的长度,所以索引器的作用只能是初始化一个长度有限的数组,也可以用string来当键 class Program { static void Main(string[] args) { man mm = new man(); mm[0] = "jingya"; mm[1] = "dongbao"; mm[2] = "xiaolizi"; mm[3] = "xializi"; for

【C#】我看索引器

前沿: 索引器:索引器允许类或结构的实例就像数组一样进行索引. 索引器类似于属性,不同之处在于它们的访问器采用参数. 正文: 在看索引器前,我们先看看C#的属性,面向对象设计和编程的重要原则之一就是数据封装,也就是我们在类中定义的字段永远不应该对外公开,假如我们定义了下面一个类 public class Employee { public string Name; public int Age; } 那么我们在外面可以很随意的破换一个Employee对象: Employee e=new Empl

C#学习笔记--this关键字和索引器

 一.this关键字 在C#中,this关键字有以下3种常见的用法: 1.用在类的属性.实例方法或实例构造方法中,区分成员名和本地变量(或参数).下面的示例声明一个名为Myclass的类,类中包括一个实例字段myVal和一个实例构造函数,该构造函数带一个名为myVal的参数,在方法中,通过this可以在语义上区分成员名myVal和参数名myVal.(注意:在实际编程中是不建议参数名和字段名相同的,这样做降低了代码的易读性,这里只是为了说明this关键字的用法而已). 1 class MyCl

C#之索引器

实际中不使用这个东西,只做了解 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 索引器 { class Program { static void Main(string[] args) { person p = new person(); p[0] = 1; p[1] = 2; p[2] =