<strong>//1:</strong>
//先定义2个属性存书名书编号,这里有2中属性的使用方式=-=
private int id;
private string name;
public int Id
{
get{return id ;}
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public Book() {
}
public Book(int Id,string name) {
this.Id =Id ;
this.name = name;
}
在一个类中定义的属性;可以控制能否set;
还有另一种
public int Id}
{
get;
set;
}
public string Name
{ get;
set;
public Book() {
}
public Book(int Id,string name) {
this.Id =Id ;
this.name = name;
}
不需要写内部的get,set的详情;
要写就必须再定义变量;
2:
为了使得一个排序可以排自定义类型的数组
比如我们的Book类
我们定义一个接口(在进行数组内元素的比较时< 、>是不能使用的因为我们的是泛型数组)
public interface IComparable{定义在类外部;
int CompareTo(object obj);
}
并且使Book类继承这个接口
class Book:IComparable
{
//并在其中实现IComparable接口
public int CompareTo(object obj)
{
Book tt =(Book )obj ;
return this.Id. CompareTo (tt.Id );
}
}
要排序当然还有一个排序类
class SortFunc<T> where T :IComparable //接口类型的约束,只有约束了才能比较
{
public void bubblesort(T []array){
for (int i = 0; i < array .Length-1 ; i++)
{
for (int j = 0; j < array .Length-1 ; j++)
{
if (array[j].CompareTo(array[j + 1])>0) {
T temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
}
这个类也继承和Book同一个接口,可以使用CompareTo方法比较,array[j].CompareTo(array[j+1])返回一个-1或1
调用排序
static void Main(string[] args)=-=码完了。。
{
Book[]ArrayBook=new Book [3];
Book book1 = new Book(546546,"ww");
Book book2 = new Book(2321, "ww");
Book book3 = new Book(66, "ww");
ArrayBook[0] = book1;
ArrayBook[1] = book2;
ArrayBook[2] = book3;
SortFunc<Book> sort = new SortFunc<Book>();
sort.bubblesort(ArrayBook);
foreach (Book item in ArrayBook)
{
Console .WriteLine ("www"+item.Id +"...."+item.Name );
}
Console.ReadKey();
}