类型:转载 责任编辑:asp.net 日期:2007/05/23
热门软件下载:
在MSDN中对OracleParameter、SqlParameter、OleDbParameter和OdbcParameter四个对象的定义都是带有Sealed关键字的,也就是说四个对象都不能被继承。
在MSDN中队OracleParameter.ParameterName、SqlParameter.ParameterName、OleDbParameter.ParameterName和OdbcParameter.ParameterName四个属性的定义中都带有virtual关键字,也就是说四个属性都能被重写override。
但在成员重写的描述中又规定只有派生类能重写基类中virtual的方法或属性。
请问各位高手,我该如何重写ParameterName属性?
网友回答:
你为什么要重写这个属性,连这个类都不能继承的.如果要用这些类的话如下就行了:
SqlParameter myParameter = new SqlParameter();
myParameter.ParameterName = "@Description";
myParameter.IsNullable = true;
myParameter.DbType = DbType.String;
myParameter.Direction = ParameterDirection.Output;
如果你一定要对这个ParameterName进行特殊处理的话可以变换一种方式来做,如下:
using System;
namespace Parameter
{
/// <summary>
/// MyParameter 的摘要说明。
/// </summary>
public class MyParameter
{
private System.Data.SqlClient.SqlParameter m_Parameter;
public MyParameter()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public string ParameterName
{
get
{
m_Parameter.ParameterName;
}
set
{
m_Parameter.ParameterName = value;
}
}
}
}
帮你顶
我觉得Parameter这个东西在系统内部是可以被继承的,只是到了最终的用户,比如我们就不能再继承他,所以这个名字是virtual也不为怪的.至于你想要实现的我想除了那个方法可能还真不好说.