当前位置:编程学习 > C#/ASP.NET >>

派生类是不是必须实现接口的受有方法???

各位大侠,派生类是不是必须实现接口的受有方法??我发现Int32是从IConvertible继承过来的,但是没有发现它实现IConvertible中的所有方法,一个方法都没有实现。
Int32的定义如下:
public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
    {
        // 摘要:
        //     表示 System.Int32 的最大可能值。此字段为常数。
        public const int MaxValue = 2147483647;
        //
        // 摘要:
        //     表示 System.Int32 的最小可能值。此字段为常数。
        public const int MinValue = -2147483648;
................
}
IConvertible的定义如下:
    public inte易做图ce IConvertible
    {
        TypeCode GetTypeCode();
        bool ToBoolean(IFormatProvider provider);
        byte ToByte(IFormatProvider provider);
        char ToChar(IFormatProvider provider);
        DateTime ToDateTime(IFormatProvider provider);
      ......
   }
我在Int32 没有发现对IConvertible中的任何一个方法(如:ToBoolean)的实现。请问,这是为什么啊?
--------------------编程问答-------------------- 他是显示接口实现,你直接点是点不出来的,将其转换为接口的时候就能调用这些方法。

详情参阅你帮助中的显示接口实现。 --------------------编程问答-------------------- [Serializable, StructLayout(LayoutKind.Sequential), ComVisible(true)]
public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
{
    public const int MaxValue = 0x7fffffff;
    public const int MinValue = -2147483648;
    internal int m_value;
    public int CompareTo(object value);
    public int CompareTo(int value);
    public override bool Equals(object obj);
    public bool Equals(int obj);
    public override int GetHashCode();
    public override string ToString();
    public string ToString(string format);
    public string ToString(IFormatProvider provider);
    public string ToString(string format, IFormatProvider provider);
    public static int Parse(string s);
    public static int Parse(string s, NumberStyles style);
    public static int Parse(string s, IFormatProvider provider);
    public static int Parse(string s, NumberStyles style, IFormatProvider provider);
    public static bool TryParse(string s, out int result);
    public static bool TryParse(string s, NumberStyles style, IFormatProvider provider, out int result);
    public TypeCode GetTypeCode();
    bool IConvertible.ToBoolean(IFormatProvider provider);
    char IConvertible.ToChar(IFormatProvider provider);
    sbyte IConvertible.ToSByte(IFormatProvider provider);
    byte IConvertible.ToByte(IFormatProvider provider);
    short IConvertible.ToInt16(IFormatProvider provider);
    ushort IConvertible.ToUInt16(IFormatProvider provider);
    int IConvertible.ToInt32(IFormatProvider provider);
    uint IConvertible.ToUInt32(IFormatProvider provider);
    long IConvertible.ToInt64(IFormatProvider provider);
    ulong IConvertible.ToUInt64(IFormatProvider provider);
    float IConvertible.ToSingle(IFormatProvider provider);
    double IConvertible.ToDouble(IFormatProvider provider);
    decimal IConvertible.ToDecimal(IFormatProvider provider);
    DateTime IConvertible.ToDateTime(IFormatProvider provider);
    object IConvertible.ToType(Type type, IFormatProvider provider);
}

 
--------------------编程问答-------------------- 能不能说明一下显示接口的查看方法,您是怎么一下就查到显示接口的呢? --------------------编程问答-------------------- 上面的代码是Reflector出来的 --------------------编程问答-------------------- 呵呵,明白了,谢谢,我当时是用F12来查看的,没有看到显示接口实现
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,