分类:Web编程
共 938 篇
我们现在来做一个小程序:创建一个Windows窗体应用程序,然后在默认创建的Form1上添加两个按钮,分别命名为btnClickMe1和btnClickMe2,显示的文本为“点击我1”、“点击我2”,如下图所示: 然后我们希望在点击这两个按钮的时候,能够弹出一个对话框,向用户显示一个提示,例如“您好,我的读者,希望您能喜欢本书!”(顺便一提,我是真心这么希望的^^)。如果在往常,你可能会毫不犹豫的在按钮上双击,然后编写按钮的事件处理代码,但是我们现在在讲委托和事件,所以让我们换一种方式,像下面这样修改Form1.cs文件: 我知道这段代码现在已经不会为你造成任何障碍了,所以就不费时间解释它了。但是我们的第一个反应就是代码重用了,因为两个Click事件共享了同一个事件处理方法。接下来我们再思考一下,像这种两个按钮共用同一个Click事件处理方法的情况并不多见,现在让我们删除掉btnClickMe2,仅保留一个btnClickMe1,好了,现在你看出问题了么?btnClickMe_Click()方法仅仅是为btnClickMe1服务,但是它们却离得如此之远,以至于我们在窗体代码很多的情况下(你可以想像一下窗体有几百行代码,而btnClickMe_Click()隐藏在一个小角落里)不得不花些时间来寻找它。我们会想,要是有一种语法,能够直接将方法体付给btnClickMe1的Click事件就好了,比如说像下面这样:…
📂 Web编程
👤 博主
📅 2008-12-21
👁 4096
👍 0
阅读全文 →
引言 委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。 将方法作为方法的参数 我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问候的话语:…
📂 Web编程
👤 博主
📅 2008-12-19
👁 3588
👍 0
阅读全文 →
面向对象的程序设计有三大要素,封装、继承和多态。虚函数是多态的重要组成部分,同时又在类的继承关系中有着很多变化。本文讨论.NET中对虚函数的支持。 首先,我们通过一个例子来看看虚函数的普通用法: 输出结果 CB.Foo 在这个例子中,尽管在调用InvokeFoo()的时候,CB被转换成CA,但是当执行ca.Foo的时候,仍然调用了CB的Foo。因为ca此时指向的是一个CB类型的对象。这种调用模式,我们称之为运行时绑定。因为在编译InvokeFoo时,编译器无法获取参数ca的真实类型,只有在运行的时候,才能根据ca的真实类型,决定调用哪一个函数。 在这个例子中,两个关键字值得我们注意,首先是virtual,他告诉编译器,当前函数需要运行时绑定。其次是override,他告诉编译器,我要覆盖基类中的Foo()。…
📂 Web编程
👤 博主
📅 2008-12-16
👁 3966
👍 0
阅读全文 →
<html>
<head>
<style type="text/css">
input {width:22px;height:22px;}
</style>
</head>
<body>
<script type="text/javascript">
//Cody by:dnawo
var rows = 8;//行
var cols = 8;//列
var type = 4;//种类
var arrPoint = ;//全部坐标点
var selPoint = ;//选中坐标
var count = 0;…
📂 Web编程
👤 博主
📅 2008-12-16
👁 4521
👍 0
阅读全文 →
语法: 示例:
📂 Web编程
👤 博主
📅 2008-12-10
👁 4255
👍 0
阅读全文 →
可空类型是 System.Nullable 结构的实例。可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。例如,Nullable,读作“可空的 Int32”,可以被赋值为 -2147483648 到 2147483647 之间的任意值,也可以被赋值为 null 值。Nullable 可以被赋值为 true 或 false,或 null。在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔型的功能特别有用。例如,数据库中的布尔型字段可以存储值 true 或 false,或者,该字段也可以未定义。 可空类型具有以下特性: ·可空类型表示可被赋值为 null 值的值类型变量。无法创建基于引用类型的可空类型。(引用类型已支持 null 值。)。…
📂 Web编程
👤 博主
📅 2008-12-08
👁 4489
👍 0
阅读全文 →
事件是对象发送的消息,以发信号通知操作的发生。操作可能是由用户交互(例如鼠标单击)引起的,也可能是由某些其他的程序逻辑触发的。引发事件的对象称为事件发送方。捕获事件并对其作出响应的对象叫做事件接收方。 在事件通信中,事件发送方类不知道哪个对象或方法将接收到(处理)它引发的事件。所需要的是在源和接收方之间存在一个媒介(或类似指针的机制)。.NET Framework 定义了一个特殊的类型 (Delegate),该类型提供函数指针的功能。 委托是可保存对方法的引用的类。与其他的类不同,委托类具有一个签名,并且它只能对与其签名匹配的方法进行引用。这样,委托就等效于一个类型安全函数指针或一个回调。虽然委托具有许多其他的用途,但这里只讨论委托的事件处理功能。一个委托声明足以定义一个委托类。声明提供委托的签名,公共语言运行库提供实现。下面的示例显示了事件委托声明。…
📂 Web编程
👤 博主
📅 2008-12-05
👁 4502
👍 0
阅读全文 →
订阅事件平时我们大都像上边格式写,还可以写成如下形式: 这有些类似于Js的匿名函数,要注意当不需要参数时应去掉delegate后面的中括号!下边的例子比较有意思,也正是因为这写法不同引起的:
📂 Web编程
👤 博主
📅 2008-12-03
👁 6554
👍 0
阅读全文 →
调用示例:
📂 Web编程
👤 博主
📅 2008-11-28
👁 5607
👍 0
阅读全文 →
在日常开发中,为了编写数据的增加、更新、修改、删除等功能而不得不面对枯燥的代码,做重复又重复的工作。.NET 2.0正式版的发布,对我们程序开发人员来说无疑是一件很大的喜事,Visual Studio 2005 的一些新的增强功能和ADO.NET 2.0的新特性让我们开发高可伸缩的多层数据库应用程序更加简单和快捷。 在.NET 1.1下就可以使用强类型数据集,可是在Visual Studio 2003里开发起来还是有一些不方便,在Visual Studio 2005里对DataSet的设计视图做了很大的改进,因为ADO.NET 2.0增加了TableAdapter对象,所以现在也可以在DataSet设计视图里添加DataTable的表适配器。以前的typedDataSets只是一些数据实体(哑对象,只有属性的类)的集合,并不能很方便的自我管理持久化,以及数据完整性验证等。现在可以很方便的实现这些。 下边通过一个例子来详细介绍如何通过vs2005来生成强类型DataSet简化开发流程,生成可伸缩性的多层数据库应用程序。…
📂 Web编程
👤 博主
📅 2008-11-27
👁 4223
👍 0
阅读全文 →