马牛不是人

从平凡到卓越

用户操作
[即时聊天] [发私信] [加为好友]
马牛ID:manio
111587次访问,排名876,好友2人,关注者5人。
manio的文章
原创 148 篇
翻译 1 篇
转载 21 篇
评论 39 篇
马牛的公告
域名:manio.org
我的QQ:414976110
E-mail:manioster[at]gmail.com
点击这里Q我

即将推出的文章

关于思考与创意

马牛正在读...

最近评论
zojoyo:1003题我自己写过之后在网上想看下其他人怎么写的,读了你的程序感觉写的有点复杂了,一般使用3个循环语句就能实现
大家交流下
http://hi.baidu.com/zojoyo/blog/item/d0cc3758874f9dd99c8204b4.html
key:通俗易懂,页面简洁。好!!!
静水:我也遇见您的第一个现象,能不能帮个忙?谢谢!
kenmouse:感谢LZ,
目前我碰到LZ说第一点的问题,我想请问EEPROM里的内容怎么会"变"乱的呢?
另外,请发我ZAPBIG的程序

我的mail: kenmouse@gmail.com
zbw123456:我想找你帮做个网站,我出米米,联系QQ是 8950010
文章分类
收藏
相册
Just For Looking
Linux
IBM Linux
KernelNewBies
LinuxForum
LinuxSir
中国linux公社
Other
天意
Sign of Success
Donald Trump
Kaifu Lee
友·情
Mr.Prince3.0的blog
Paul@L 的个人主页
冰血封情的断弦寒香阁
纸老虎-Prajna的MsnSpace
存档
订阅我的博客
XML聚合  FeedSky

原创 马牛的C#学习(第四天)-从windows应用程序理解OOP|定义类|构造函数的执行顺序收藏

新一篇: 马牛的C#学习(第五天)-定义类成员 | 旧一篇: 2006年怎么过

//文件名:Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
//功能:单击一个按钮,产生一个新的按钮,单击新按钮,按钮上的文字改变
//新建windows应用程序,添加一个按钮,把代码复制到Form1.cs里面去
namespace WindowsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            ((Button)sender).Text = "Clicked!";
            Button newButton = new Button();
            newButton.Text = "New Button";
            newButton.Click += new EventHandler(newButton_Click);   //这一句是重载运算符语法,把这个事件程序注册为click事件的监听程序。同时使用非默认的构造函数创建一个新的eventhandler对象 有点不太明白:(
            Controls.Add(newButton);
        }

        private void newButton_Click(object sender, EventArgs e)
        {
            ((Button)sender).Text = "Clicked!!";
        }
    }
}

 

//控制台程序,练习定义类
using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
    public abstract class MyBase
    {
        public MyBase()
        {
            Console.WriteLine("this is MyBase");
        }
    }

    internal class MyClass:MyBase
    {
        public MyClass()
        {
            Console.WriteLine("this is MyClass");
        }
    }

    public interface IMyBaseInterface
    {
        //Error 1 Interfaces cannot contain constructors 

       // public IMyBaseInterface()
       // {
       //     Console.WriteLine("this is IMyBaseInterface");
       // }
    }

    internal interface IMyBaseInterface2
    {
    }

    internal interface IMyInterface : IMyBaseInterface, IMyBaseInterface2
    {
    }

    internal sealed class MyComplexClass : MyClass, IMyInterface
    {
    }

    class class1
    {
        static void Main(string[] args)
        {
            MyComplexClass myObj = new MyComplexClass();
            Console.WriteLine(myObj.ToString());
        }       
    }
}

 

using System;
using System.Collections.Generic;
using System.Text;
//构造函数的执行顺序,可以看到,可以使用参数来决定使用哪个构造函数
namespace ConsoleApplication1
{
    public class MyBaseClass
    {
        public MyBaseClass()
        {
            Console.WriteLine("this is mybaseclass()");
        }

        public MyBaseClass(int i)
        {
            Console.WriteLine("this si mybaseclass(int i)");
        }
    }

    public class MyDerivedClass : MyBaseClass
    {
        public MyDerivedClass()
        {
            Console.WriteLine("this is Myderivedclass()");
        }

        public MyDerivedClass(int i)
        {
            Console.WriteLine("this is myderivedclass(int i)");
        }

        public MyDerivedClass(int i, int j)
        {
            Console.WriteLine("this is MyDerivedClass(int i, int j)");
        }

    }
   
    class Program
    {
        static void Main(string[] args)
        {
            //可以用参数来选择使用哪个构造函数
            MyDerivedClass myObj = new MyDerivedClass();
            Console.WriteLine("=======================================================================");
            MyDerivedClass myObj2 = new MyDerivedClass(4);
            Console.WriteLine("=======================================================================");
            MyDerivedClass myObj3 = new MyDerivedClass(4,8);
           
        }
    }

}


运行结果:

using System;
using System.Collections.Generic;
using System.Text;
//构造函数的执行顺序,可以看到,可以使用参数来决定使用哪个构造函数
//与上一个程序不同的是,这个程序改动了一个地方(已在程序中用注释标注),由运行结果我们可以清楚地看到与上一个程序的不同
namespace ConsoleApplication1
{
    public class MyBaseClass
    {
        public MyBaseClass()
        {
            Console.WriteLine("this is mybaseclass()");
        }

        public MyBaseClass(int i)
        {
            Console.WriteLine("this si mybaseclass(int i)");
        }
    }

    public class MyDerivedClass : MyBaseClass
    {
        public MyDerivedClass()
        {
            Console.WriteLine("this is Myderivedclass()");
        }

        public MyDerivedClass(int i)
        {
            Console.WriteLine("this is myderivedclass(int i)");
        }

        public MyDerivedClass(int i, int j):base(i)//此处不同。也可以用base(5)之类的,那样就只有在i等于5的时间才执行这个顺序
        {
            Console.WriteLine("this is MyDerivedClass(int i, int j)");
        }

    }
   
    class Program
    {
        static void Main(string[] args)
        {
            //可以用参数来选择使用哪个构造函数
            MyDerivedClass myObj = new MyDerivedClass();
            Console.WriteLine("=======================================================================");
            MyDerivedClass myObj2 = new MyDerivedClass(4);
            Console.WriteLine("=======================================================================");
            MyDerivedClass myObj3 = new MyDerivedClass(4,8);
           
        }
    }

}

运行结果:

 

using System;
using System.Collections.Generic;
using System.Text;
//构造函数的执行顺序。this的应用
namespace ConsoleApplication1
{
    public class MyBaseClass
    {
        public MyBaseClass()
        {
            Console.WriteLine("this is mybaseclass()");
        }

        public MyBaseClass(int i)
        {
            Console.WriteLine("this si mybaseclass(int i)");
        }
    }

    public class MyDerivedClass : MyBaseClass
    {
        public MyDerivedClass():this(1,7)     //this在这里。。。可以看到,实例化无参数的派生类时的构造函数执行顺序
        {
            Console.WriteLine("this is Myderivedclass()");
        }

        public MyDerivedClass(int i)
        {
            Console.WriteLine("this is myderivedclass(int i)");
        }

        public MyDerivedClass(int i, int j)
        {
            Console.WriteLine("this is MyDerivedClass(int i, int j)");
        }

    }

    class Program
    {
        static void Main(string[] args)
        {
            //可以用参数来选择使用哪个构造函数
            MyDerivedClass myObj = new MyDerivedClass();
            Console.WriteLine("=======================================================================");
            MyDerivedClass myObj2 = new MyDerivedClass(4);
            Console.WriteLine("=======================================================================");
            MyDerivedClass myObj3 = new MyDerivedClass(4, 8);

        }
    }

}

运行结果:

发表于 @ 2006年02月14日 16:04:00|评论(loading...)|编辑

新一篇: 马牛的C#学习(第五天)-定义类成员 | 旧一篇: 2006年怎么过

评论

#prajna 发表于2006-02-14 19:07:00  IP: 58.19.76.*
南方讲究吃汤元,取团圆之意。元宵和汤元,材料其实差不多,区别主要在制作工艺上,汤元是用水和好糯米粉以后包馅,元宵则是把馅球放在干糯米粉上摇成。同样的东西制作方面为何不同呢?大概因为北方天寒地冻,摇起来可以不必手沾凉水吧?
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 马牛