C#笔记3

来源:互联网 发布:百度阅读软件 编辑:程序博客网 时间:2024/06/09 17:15

19;;接口

       //接口的作用:因为在C#中不允许使用C++的多重继承,故而使用接口,实现此功能(类似于输入输出设备,提供一种接口的作用,却不管输入输出为何内容)

        //在C#中,接口是声明类具有的方法和成员,自身不能被实例化,只能被继承的特殊的“类”。其用在描述,而实现则有具体的派生类来执行,一个类可以直接继承多个接口。

        //不可包含构造函数 析构函数 常量 字段运算符等。

        //默认所有的接口都是共有的

        //故而在声明接口时,加任何的限制符都是错误的

        interface myInterface

        {

            string STR//接口中的属性

            {

                get;

                set;//如上在可读可写

            }

            void outMethod();

        }

    class InheritInterface:myInterface

    {

        string str="21天学通C#";

        public string  STR//详细设置属性

        {

            get

            {

                return str;

            }

            set

            {

                str=value;

            }

        }

        public void outMethod()//具体方法的实现

        {

            Console.WriteLine(this.STR);

        }

    }

    class Program

    {

        static void Main()

        {

            InheritInterface myZhou=new InheritInterface();

            myZhou.outMethod();

            Console.Read();

        }

    }

20;;抽象类

namespace ConsoleApplication2

{

        //抽象类

        //和接口有相似之处,本身不能直接被实例化,并且没有代码体,其方法须在在其派生类中才可以实现

        //抽象类,其实就是一个不完整的类,需要继承类补充和实现具体的方法

        //关键字abstract

    public abstract class MaxHoan

    {

        public abstract void MyInfo();//抽象方法:抽象类中只能包含抽象方法

    }

    public class MinHoan : MaxHoan

    {

        public override void MyInfo()//override:重写功能

        {

            Console.WriteLine("我是被重写的抽象类中的抽象方法myInfo()");

        }

    }

    public class Program

    {

        static void Main(string[] args)

        {

            MinHoan zhou = new MinHoan();

            zhou.MyInfo();

            Console.Read();

        }

    }

}

21;;

    //域,也叫成员变量,它可以用来保存累的各种信息,就是简单的成员变量

    //分:静态域:属于类:用static声明

    //    实例域:属于对象,与之相反

    //域的用途:其实就是一种变量,所以和声明变量是一样的,声明时可以用的修饰符有New protected internal private static readonly

 

 

    //属性:是一种用来访问对象的特殊成员

    //属性的用途:访问类或者对象特性的成员,属性是成员的扩展,他们都是关联类型的命名成员,所以访问成员和属性的语法是完全相同的。

    //属性不同于成员的特点:属性不表示具体的存储位置,其提供了一种机制,它把读取和写入对象的某些特性域与一些操作关联起来,如get set,使得程序员可以像使用公共数据成员一样使用属性

22;;匿名方法

namespace ConsoleApplication2

{

    //匿名方法:就是将代码块当做参数使用,使代码对于委托的实例很直接、很便利,以减少实例化委托对系统资源的开销,匿名方法还共享了本地语句包含的而函数成员访问权限

    delegate void Writer(string s);//定义一个委托

    class C56

    {

        static void NameMethod(string k)//委托所调用的命名方法

        {

            Console.WriteLine(k);

        }

        static void Main()

        {

            Writer w=delegate(string k)//委托类调用匿名方法

                {

                    Console.WriteLine(k);

                }

            w("调用了匿名方法。");

            Console.WriteLine();

            w=new Writer(NameMethod);

            w("调用了命名方法。");

            Console.Read();

        }

    }

}

23;;// 构造函数

namespace ConsoleApplication2

{

    class demoClass

    {

        public double x, y;

        public demoClass()

        {

            this.x = 0;

            this.y = 0;

        }

        public demoClass(double a,double b)

        {

            this.x = a;

            this.y = b;

        }

        public void show()

        {

            Console.WriteLine("x={0}",x);

            Console.WriteLine("y={0}", y);

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            demoClass zhou = new demoClass();

            zhou.show();

            demoClass zhou1 = new demoClass(1.2, 3.4);

            zhou1.show();

            Console.Read();

        }

    }

24;;

//接口的实现

namespace ConsoleApplication2

{

    interface demoInter

    {

        void fdShow();

    }

    public class myClass : demoInter

    {

        public void fdShow()

        {

            Console.WriteLine("实现了接口的功能");

        }

    }

    class C59

    {

        static void Main()

        {

            myClass zhou = new myClass();

            zhou.fdShow();

            Console.Read();

        }

      

    }

}

25;;

namespace ConsoleApplication2

{

    delegate void MyDelegate(string s);

    class myClass

    {

        public static void hello(string s)

        {

            Console.WriteLine("您好,{0}",s);

        }

        public static void goodbye(string s)

        {

            Console.WriteLine("再见,{0}",s);

        }

    }

    class program

    {

        static void Main(string [] args)

        {

            MyDelegate a,b,c,d;

            a=myClass.hello;

            Console.WriteLine("调用委托变量a:");

            a("a");

            Console.WriteLine("调用委托变量b:");

            b = myClass.goodbye;

            b("b");

            c=a+b;

            Console.WriteLine("调用委托变量c:");

            c("c=a+b");

            d=c-a;

            Console.WriteLine("调用委托变量d:");

            d("d=c-a");

            Console.Read();

        }

    }

}

26;;page对象简介

public partial class _Default : System.Web.UI.Page

{  

    //page:Web窗体的容器,其他的对象是在它之上进行工作的。

    //作用:初始化和加载等重要的功能

    //其实就是Web应用程序的ASPX文件

    //ASP.net页面在运行时,会按一定的顺序激发这些事件,它们的顺序如下:

    //Page_Init:用于初始化所有值或程序

    //Page_Load:页面加载事件

    //Page_DataBind:在整个页面级别调用DataBind方法时,将会引发DateBind事件

    //Page_Unload:完成页面呈现或者加载之后,将激发Unload事件

    //Page_Error:如页面处理过程中出现一些错误,就会激发Error事件,并且为这些错误事件提供处理方法

    //初始化:即运行Init事件:其他事件的基础

    protected void Page_Load(object sender, EventArgs e)

    {

        //ListBox1.Items.Add("周红安");

        //ListBox1.Items.Add("周晓明");

        //ListBox1.Items.Add("杨阳");

        //上述如果存在,则会重复载入,避免方法

        if (!IsPostBack)//如用IsPostBack则只加载一次

        {

            ListBox1.Items.Add("周红安");

            ListBox1.Items.Add("周晓明");

            ListBox1.Items.Add("杨阳");

        }

    }

    protected void Page_Init(Object sender, EventArgs e)//最先初始化

    {

        ListBox1.Items.Add("周红安");

        ListBox1.Items.Add("周晓明");

        ListBox1.Items.Add("杨阳");

    }

    //防止Init和Load两事件重复加载,可使用

 

    protected void Button1_Click(object sender, EventArgs e)

    {

        Button Button1 = (Button)Page.FindControl("Button1");//查询Button1控件的信息,并以(Button1.text)字符串形式输出

        TextBox1.Text=(Button1.Text);

原创粉丝点击