派生类是不是必须实现接口的受有方法???
各位大侠,派生类是不是必须实现接口的受有方法??我发现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#