关闭

部分类

标签: asp.netintegerclasstextboxfunctionc#
1114人阅读 评论(0) 收藏 举报
分类:
部分类是.NET Framework 2.0中的一个新特性,可以用于C#和Visual Basic 8.0。这些类可以把一个类放在多个类文件中,以后在编译时再把它们合并为一个类。
部分类是ASP.NET使新后台编码模型非常简单的关键。在ASP.NET 1.0/1.1中,后台编码模型包含许多代码,它们都标记为机器生成的代码(由设计器生成),并隐藏在#REGION标记中。现在,ASP.NET 2.0的后台编码文件看起来简单多了。程序清单A-14是一个新后台编码模型的例子,它使用了部分类。
程序清单A-14  使用部分类的新后台编码模型
VB
Imports Microsoft.VisualBasic
Namespace ASP
    Partial Class TestPage
        Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
            Label1.Text = "Hello " & Textbox1.Text
        End Sub
    End Class
End Namespace
C#
using System;
namespace ASP {
    public partial class TestPage
    {
        void Button1_Click (object sender, System.EventArgs e)
        {
            Label1.Text = "Hello " + Textbox1.Text;
        }
    }
}
这个后台编码文件包含一个简单的按钮单击事件。如果把它与ASP.NET 1.0/1.1的后台编码文件中的设计器代码相比较,注意两者有一个很大的区别。原来的后台编码文件中的代码有什么变化吗?这些代码还在,但现在由于使用了部分类,所有必要的但不改动的代码都放在另一个类文件中。在编译时,程序清单A-14中的类文件会与其他类文件合并起来。结果说明,ASP.NET 2.0中的后台编码文件只需由实际使用的对象组成。
对于要与其他类合并的任何类,在Visual Basic中,部分类使用Partial关键字创建,而在C#中,部分类使用partial关键字创建。对于要与原始类合并的类,应把Partial关键字放在Class关键字之前。在ASP.NET 2.0中,除了每个后台编码页面可以使用部分类之外,还可以在自己的类文件中使用部分类。可以使用程序清单A-15和A-16中的过程,把两个或多个类作为一个类的不同部分。
程序清单A-15  第一个类
VB
Public Class Calculator
   Public Function Add(ByVal a As Integer, ByVal b As Integer)
      Return (a + b)
   End Function
End Class
C#
public class Calculator
{
    public int Add(int a, int b)
    {
        return a + b;
    }
}
程序清单A-16列出了使用部分类功能的第二个类:
程序清单A-16  第二个类
VB
Partial Class Calculator
   Public Function Subtract(ByVal a As Integer, ByVal b As Integer)
      Return (a - b)
   End Function
End Class
C#
public partial class Calculator
{
    public int Subtract(int a, int b)
    {
        return a - b;
    }
}
在编译这两个类文件时,它们会显示为一个对象。程序清单A-15中的第一个类构建为一个正常的类,而组成该类的其他类使用新的Partial关键字。使用编译好的Calculator类的用户看不出区别。在Calculator类的用户创建这个类的实例后,这个实例有Add和Subtract方法。如图A-1所示。
图  A-1
 
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:239205次
    • 积分:2703
    • 等级:
    • 排名:第13312名
    • 原创:10篇
    • 转载:136篇
    • 译文:0篇
    • 评论:40条
    最新评论