您的位置:首页 > 编程语言 > C#

学习c#的第一天

2017-03-03 14:56 239 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/FateNightZ/article/details/60140125 一.委托: 1.概念:就是一个命令。委托只是存储了各个方法的地址,而他自己也是什么也不做的。 2.关键字:delegate 3.例子:     //小张类     public class MrZhang     {         //其实买车票的悲情人物是小张         public static void BuyTicket()         {             Console.WriteLine("NND,每次都让我去买票,鸡人呀!");         }     }
    //小明类     class MrMing     {         //声明一个委托,其实就是个“命令”         public delegate void BugTicketEventHandler();
        public static void Main(string[] args)         {             //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票”             //委托的方法(MrZhang.BuyTicket)必须要加上,因为委托的构造函数是不为空的             BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);
            //这时候委托被附上了具体的方法             myDelegate();             Console.ReadKey();         }     } 4.委托的参数和返回类型,都要和你要具体委托的方法要一致,例:

 public delegate void BugTicketEventHandler();

 public static void BuyTicket()

    {
  Console.WriteLine("NND,每次都让我去买票,鸡人呀!");
}

二、委托链: 1.概念: 其实委托链也是相当的简单,在现实生活中,小明叫小张买完车票之后,可能接着又让他带张电影票 2.例子: //小张类 public class MrZhang
  {
     //其实买车票的悲情人物是小张
      public static void BuyTicket()
      {
         Console.WriteLine("NND,每次都让我去买票,鸡人呀!");
      }

      public static void BuyMovieTicket()
      {
         Console.WriteLine("我去,自己泡妞,还要让我带电影票!");
      }
  }

    //小明类
    class MrMing
    {
        //声明一个委托,其实就是个“命令”
        public delegate void BugTicketEventHandler();

        public static void Main(string[] args)
        {
            //这里就是具体阐述这个命令是干什么的,本例是MrZhang.BuyTicket“小张买车票”
            BugTicketEventHandler myDelegate = new BugTicketEventHandler(MrZhang.BuyTicket);

            myDelegate += MrZhang.BuyMovieTicket;
            //这时候委托被附上了具体的方法
            myDelegate();
            Console.ReadKey();
        }
    } 

三、事件:

四、关键字:
1.Object:接口只包含方法、属性、事件或索引器的“签名”。成员的实现是在实现接口的类或结构中完成的。object 类型在 .NET Framework 中是 Object 的别名。在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从 Object 继承的。可以将任何类型的值赋给 object 类型的变量。将值类型的变量转换为对象的过程称为“装箱”。将对象类型的变量转换为值类型的过程称为“取消装箱”。
2.override:要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。
3.virtual:virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。例如,此方法可被任何继承它的类重写。
4.sealed:当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。
5.readonly:在字段上使用的修饰符。C#引入了readonly修饰符来表示只读域,const来表示不变常量。顾名思义对只读域不能进行写操作,不变常量不能被修改,这两者到底有什么区别呢?只读域只能在初始化--声明初始化或构造器初始化--的过程中赋值,其他地方不能进行对只读域的赋值操作,否则编译器会报错。只读域可以是实例域也可以是静态域。只读域的类型可以是C#语言的任何类型。但const修饰的常量必须在声明的同时赋值,而且要求编译器能够在编译时期计算出这个确定的值。const修饰的常量为静态变量,不能够为对象所获取。
6.extern:在方法声明中使用extern修饰符支持在外部实现方法。 外部修饰符的常见用法是:在使用Interop 服务调入非托管代码时与 DllImport 属性一起使用;在这种情况下,该方法还必须声明为 static,如下面的示例所示: using System;
using
System.Runtime.InteropServices;
//引用外部
namespace extern {
public partial classDllImportForm : Form
{
publicDllImportForm()
{
InitializeComponent();
}
[DllImport("kernel32",SetLastError =true)]//声明和实现的连接
public static extern intGetCurrentDirectory(int a, StringBuilderb);//外部方法
privatevoid btnDisplay_Click(objectsender, EventArgs e)
{
StringBuilderpathstring=new StringBuilder(); //返回路径
GetCurrentDirectory(300,pathstring);
this.listBox1.Items.Add(pathstring);
}
}
}
7.event:关键字用于在发行者类中声明事件。
8.abstract:修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员,必须通过从抽象类的派生的类来实现。
9.internal:访问修饰符,关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的。
10.as:一个转换操作符,如果转换失败,就返回null。
11.checked:既是操作符又是语句。 确保编译器运行时,检查整数类型操作或转换时出现的溢出。
12.explicit:用户自定义转换操作符的操作符, 通常用来将内建类型转换为用户定义类型或反向操作。  必须再转换时调用显示转换操作符。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: