部分类

转载 2007年09月12日 16:02:00
部分类是.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
 

相关文章推荐

(2011.09.27)《C++ Primer》第三部分学习笔记汇总——类和数据抽象

《C++ Primer》第三部分学习笔记汇总——类和数据抽象   《C++ Primer》 第12章学习笔记 第12章:类 ——在C++中,用类来定义自己的抽象数据类型(abstract da...

Java(集合类)第三部分(Map映射接口)

映射(map)是一个存储关键字和值的关联或者说是关键字/值对的集合。给定一个关键字可以得到它的值。关键字和值都是对象,每一对关键字/值叫做一项。关键字必须是唯一的,但值是可以重复的。有些映射可以接受n...

java 三维向量类 分装了部分向量相关函数 欢迎补充

java 三维向量类 分装了部分向量相关函数 欢迎补充 (提供平面求垂直向量 向量旋转 向量求膜 向量转单位向量等函数)

2013年9月华为软件类校招机试 西安地区(西工大、西电)部分组试题

题目来源:http://club.xdnice.com/thread-1320782-1-1.html  (西电 好网)

代码大全第二版读书笔记 第二部分-创建高质量的代码 六、可以工作的类

可以工作的类(P126) 这是关于更高效,更合理抽象的一些建议 1.类的基础:抽象数据类型 2.良好的类接口 3.有关设计和实现的问题 4.创建类的原因

黑马程序员-关于Collections类中fill方法的一个拓展练习(实现将list中部分元素替换)

今天学习有关Collections类中fill方法,毕老师布置作业,自己第一个方法,实现将list中部分元素替换。 我通过阅读fill方法源码,修改代码如下:import java.util.Ar...

第六部分 线程同步辅助类

线程同步辅助类CyclicBarrierjava.uril.concurrent.CyclicBarrier是一个同步辅助类,不过这里所指的同步不是本章前面一直强调的“线程同步”,而是指隶属于同一个线...
  • cuiran
  • cuiran
  • 2011-01-20 09:53
  • 1883

模仿hibernate模型类数据部分的操作

使用JDBC操作数据库时挺方便的,暂时功能简单.  .以后有时间还会完善。 如大家有指教请留言。   import java.lang.reflect.Field; import java.l...

黑马程序员——java基础部分——基础类型与包装类详解

概述     基本数据类型有八种char,short,  int,  long,  float,  double,  boolean,  byte ,对应的包装类为:Charater、    Shor...

string类的实现(实现了一部分功能)

#ifndef _MSTRING_H_ #define _MSTRING_H_ #include using namespace std; namespace kaka{ cl...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)