gpt4 book ai didi

c# - 为什么 OracleParameter 实现了 ICloneable 但不提供 Clone()?

转载 作者:太空狗 更新时间:2023-10-30 00:47:10 26 4
gpt4 key购买 nike

我正在使用 OracleClient 库版本 1.0.5000.0,我对 OracleParameter 类及其 ICloneable 的实现感到困惑。

这是 OracleParameter 类的定义:

public sealed class OracleParameter : MarshalByRefObject, IDbDataParameter, IDataParameter, ICloneable {
public OracleParameter();
public OracleParameter(string name, object value);
public OracleParameter(string name, OracleType oracleType);
public OracleParameter(string name, OracleType oracleType, int size);
public OracleParameter(string name, OracleType oracleType, int size, string srcColumn);
public OracleParameter(string name, OracleType oracleType, int size, ParameterDirection direction, bool isNullable, byte precision, byte scale, string srcColumn, DataRowVersion srcVersion, object value);

[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[RefreshProperties(RefreshProperties.All)]
[Browsable(false)]
public DbType DbType { get; set; }
[RefreshProperties(RefreshProperties.All)]
public ParameterDirection Direction { get; set; }
[Browsable(false)]
[DesignOnly(true)]
[EditorBrowsable(EditorBrowsableState.Never)]
[DefaultValue(false)]
public bool IsNullable { get; set; }
[DefaultValue(0)]
[Browsable(false)]
public int Offset { get; set; }
[RefreshProperties(RefreshProperties.All)]
public OracleType OracleType { get; set; }
[DefaultValue("")]
public string ParameterName { get; set; }
[DefaultValue(0)]
public byte Precision { get; set; }
[DefaultValue(0)]
public byte Scale { get; set; }
[DefaultValue(0)]
public int Size { get; set; }
[DefaultValue("")]
public string SourceColumn { get; set; }
public DataRowVersion SourceVersion { get; set; }
[DefaultValue("")]
[RefreshProperties(RefreshProperties.All)]
[TypeConverter(typeof(StringConverter))]
public object Value { get; set; }

public override string ToString();
}

它实现了System.ICloneable,但是里面没有Clone()方法。

谁能解释一下?

最佳答案

在 .NET 中,您可以使用以下语法显式实现接口(interface)成员:

对象 System.IClonable.Clone(){

因此,您只能通过显式转换为预期的接口(interface)来使用该方法。

另见 http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleparameter.system.icloneable.clone(VS.85).aspx

关于c# - 为什么 OracleParameter 实现了 ICloneable 但不提供 Clone()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1331090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com