为什么System.Guid没有实现System.IConvertible?

Jam*_*ing 6 c# clr guid

我最近尝试从接受的方法返回Guid类型的对象<T>,但是编译器给了我以下错误:

类型'System.Guid'不能用作泛型类型或方法'MyGenericMethod'中的类型参数'T '.从'System.Guid''System.IConvertible'没有拳击转换.

经过调查,我意识到编译器消息是由于Guid类型没有实现System.IConvertible接口而引起的.

MSDN声明如下:

此接口提供了将实现类型的实例的值转换为具有等效值的公共语言运行时类型的方法.

提供的类型列表不包括Guid; 任何人都可以解释/提供一个用例,为什么会这样?

Adr*_*scu 13

IConvertible要求该类型能够将其数据转换为大多数基元.例如,你如何将Guid表示为浮动?

因为Guid无法实现大多数接口方法,否则它不会声明自己.

现在就真正的问题:你想要完成什么?

  • `DateTime`是`IConvertible`的一个例子,几乎所有方法都抛出`InvalidCastException`.`DBNull`更糟糕. (2认同)