处理大型项目时,使一个类分布于多个独立文件中可以让多位程序员同时对该类进行处理(相当于支持并行处理,很实用);
– 使用自动生成的源时,无需重新创建源文件便可将代码添加到类中。
动软生成的代码
using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
using Maticsoft.DBUtility;//Please add references
namespace HotelManager.DAL
{
/// <summary>
/// 是否存在该记录
/// </summary>
public bool Exists(int TypeId)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("select count(1) from RoomType");
strSql.Append(" where TypeId=@TypeId ");
SqlParameter[] parameters = {
new SqlParameter("@TypeId", SqlDbType.Int,4)};
parameters[0].Value = TypeId;
return DbHelperSQL.Exists(strSql.ToString(),parameters);
}
.......
你如果想重载Exists(string typeName)写到动软生成的代码里面 当重新用动软生成的代码你写的重载代码就会被覆盖
你可以再同级别目录下载创建一个类 (部分类)
using System;
using System.Data;
using System.Text;
using System.Data.SqlClient;
using Maticsoft.DBUtility;//Please add references
namespace HotelManager.DAL
{
/// <summary>
/// 数据访问类:RoomTypeServices
/// </summary>
public partial class RoomTypeServices
{
/// <summary>
/// 检测typename是否存在
/// </summary>
/// <param name="typeName"></param>
/// <returns></returns>
public bool Exists(string typeName)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select count(1) from RoomType");
strSql.Append(" where TypeName=@typeName ");
SqlParameter[] parameters = {
new SqlParameter("@typeName", SqlDbType.NVarChar,50)};
parameters[0].Value = typeName;
return DbHelperSQL.Exists(strSql.ToString(), parameters);
}
}
}
使用Partial需要注意以下一些情况:
1. 使用partial 关键字表明可在命名空间内定义该类、结构或接口的其他部分
2. 所有部分都必须使用partial 关键字
3. 各个部分必须具有相同的可访问性,如public、private 等
4. 如果将任意部分声明为抽象的,则整个类型都被视为抽象的
5. 如果将任意部分声明为密封的,则整个类型都被视为密封的
6. 如果任意部分声明继承基类时,则整个类型都将继承该类
7. 各个部分可以指定不同的基接口,最终类型将实现所有分部声明所列出的全部接口
8. 在某一分部定义中声明的任何类、结构或接口成员可供所有其他部分使用
9.嵌套类型可以是分部的,即使它们所嵌套于的类型本身并不是分部的也如此。