文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C#语法讲解

C#语法讲解

时间:2010-10-24  来源:Cleak

using System;

namespace ConsoleApplication3//委托和类相似,只要可以声明类的地方都能够声明委托,委托 的声明语法:
 //关键字+返回类型+委托名+与之配合使用的方法的返回类型的参数声明.在主函数中,首先得像类一样实例,一次,实例是带上方法,
 //然后使用实例的对象进行,传参数.ok;e
{
 delegate void EatDelegate(string food);

 class myDelegate
 {
  public static void zsEat(string food)
  {
     Console.WriteLine("张三吃"+food);
  }
 
 }
 class Class1
 {
  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   myDelegate.zsEat("西瓜");
   EatDelegate zs=new EatDelegate(myDelegate.zsEat);
   zs("苹果");
   }
 }
}

2.索引器

using System;
using System.Collections;
//索引器可以重载;索引器的声明使用关键字this
class IndexClass//带索引器的类
{
  private Hashtable name=new Hashtable();
 public string this[int index]//A索引器
 {
  get{return name[index].ToString();}
  set{name.Add(index,value);}
 }
 public int this[string aName]
 {
  get
  {
   foreach(DictionaryEntry d in name)
   {
                if (d.Value.ToString() == aName)
                {
                    return Convert.ToInt32(d.Key);
                }
               
   }
            return -1;
  }
  set{name.Add(value,aName);}
 }
}
class test
{
 public static void Main()
 {
   IndexClass b=new IndexClass();
  b[100]="张三";
  b[200]="李四";
  b[300]="王五";
  Console.WriteLine("编号是100的员工是"+b[100]);
  Console.WriteLine("编号是200的员工是"+b[200]);
  Console.WriteLine("编号是300的员工是"+b[300]);
  Console.WriteLine("张三的编号是"+b["张三"]);
  Console.WriteLine("李四的编号是"+b["李四"]);
  Console.WriteLine("王五的编号是"+b["王五"]);
 
 }

}

------------------------------------------------------------------

 

using System;//索引器提供了把 数组封装到类里面的方法.是数组和似有字段一样同样的安全,索引器的索引
//不一定要是整形们可以是,其他的类型,可以是一个字符串

namespace ConsoleApplication2
{
 class ArrClass//普通的不带索引器的类
 {
  
  
  public ArrClass(string mm)//一个构造函数
  {
    this.name=mm;
  }
        private string name;
  public string Name//一个属性,每个属性都对应一个似有字段
  {
   get
   {
     return name;
   }
  
  }
 }
 class Indexor     //带有索引器的类
 {
  private string[] name=new string[10];
  public string this[int no]     //声明了一个索引器.索引器就是带有参数的属性,在声明一个属性时,首先需要声明与之相关的
                              //似有字段,与之相似的是,在声明索引器时,首先要声明与之相关的似有数组.
  {
   get
   {
     return name[no];
   }
   set
   {
     name[no]=value;
   }
  
  }
  
  
 }
 class Class1
 {
  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   ArrClass[] aa=new ArrClass[10];
   aa[0]=new ArrClass("haohaizi");//需要传递参数.
   Console.WriteLine("aa[0]="+aa[0].Name);
   Indexor kk=new Indexor();
   kk[0]="haohaizi";//直接等于即可.不需要传递任何的参数
   kk[1]="huaihaizi";
   Console.WriteLine("kk[0]="+kk[0]);
  }
 }
}

--------------------------------------------

 

using System;
using System.Collections;
//索引器(indexer)允许类或结构的实例按照与数组相同的方式进行索引.
//索引器类似于属性,不同之处在于它们的访问器采用参数.也被成为有参属性.
//索引器没有自己的名称,访问时通过它归属的对象.索引器的声明和类的声明
//是一样的,其实它就是一个类.给索引器赋值和跟数组赋值一样,直接等于就可以了.
//在.NET Framework中,Hashtable是System.Collections命名空间提供的一个容器
//用于处理和表现类似于key和value的键值对,其中key通常可以用来快速查找,key是
//区分大小写的;value用于存储对应于key的值.Hashtabel中key/value键值对均为
//object类型,所以hashtable可以支持任何类型的key和value键值对.向Hashtable中
//加数据是通过Add函数来完成.可以通过键来访问值.

namespace MyIndexer
{
 class IndexClass//带索引器的类
  {
   private Hashtable name=new Hashtable();
   public string this[int index]//A索引器
   {
    get{return name[index].ToString();}
    set{name.Add(index,value);}
   }
   public int this[string aName]//B索引器
   {
    get
    {
     foreach(DictionaryEntry d in name)
     {
      if(d.Value.ToString()==aName)
      {
       return Convert.ToInt32(d.Key);
      }
      return -1;
     }
    }
    set{name.Add(value,aName);}
   }
  }// <summary>
 /// Class1 的摘要说明。
 /// </summary>
 class Class1
 {
  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   IndexClass b=new IndexClass();
   b[100]="张三";
   b[200]="李四";
   b[300]="王五";
   //调用A索引器
   Console.WriteLine("编号是100的员工是"+b[100]);
   Console.WriteLine("编号是200的员工是"+b[200]);
   Console.WriteLine("编号是300的员工是"+b[300]);
   //调用B索引器
   Console.WriteLine("张三的编号是"+b["张三"]);
   Console.WriteLine("李四的编号是"+b["李四"]);
   Console.WriteLine("王五的编号是"+b["王五"]);
   //使用set访问器
   b["马六"]=400;
   b["钱七"]=500;
   //调用A索引器
   Console.WriteLine("编号是400的员工是"+马六);
   Console.WriteLine("编号是500的员工是"+钱七);
  }
 }
}

 

相关阅读 更多 +
排行榜 更多 +
西安交大通

西安交大通

生活实用 下载
长江云通

长江云通

生活实用 下载
translatez

translatez

生活实用 下载