|
//文件名: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...)|编辑