求证一下:System.Reflection.Missing.Value是不是与Type.Missing等价?

大可山人
博客专家认证
2006-03-03 02:24:13
RT.
...全文
413 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiyun0112 2006-03-03
  • 打赏
  • 举报
回复
if (System.Reflection.Missing.Value=Type.Missing)
MessageBox.Show("YES");

YES


**********************************
*本人主要使用VB+MS SQL,C#略知一二*
* *
*如有相关问题需要帮助 *
* *
*可发短消息告知链接 *
**********************************


Cheaper_c 2006-03-03
  • 打赏
  • 举报
回复
它们两个是完全一样地。
都是System.Reflection.Missing类型。
虽然Type.Missing杯定义为object,但是在Type类的静态构造函数中把System.Reflection.Missing.Value赋给了它,所以Type.Missing的类型也变成了System.Reflecton.Missing了.
你可以运行如下代码进行检测
MessageBox.Show(System.Reflection.Missing.Value.GetType().ToString());
MessageBox.Show(System.Type.Missing.GetType().ToString());
是一样地.嘿嘿.
大可山人 2006-03-03
  • 打赏
  • 举报
回复
Cheaper_c(小雨) :
按照这个意思,两者就不属于同一对象,只是值相同罢了?(不太清楚)
心情解码 2006-03-03
  • 打赏
  • 举报
回复
:)



-
Cheaper_c 2006-03-03
  • 打赏
  • 举报
回复
使用Reflector看一下源代码就可以了
Type.Missing定义为:
public static readonly object Missing;
Type类的构造函数中为此字段进行了初始化,代码为:
Type.Missing = Missing.Value;

System.Reflection.Missing类定义为:
public sealed class Missing
{
static Missing(){Missing.Value = new Missing();}
internal Missing();
public static readonly Missing Value;
}
所以,他们两个等价。
谢谢
欢迎批评指正

lidong6 2006-03-03
  • 打赏
  • 举报
回复
他们的类型不一样:
Type.Missing 是Object
System.Reflection.Missing.Value 的类型是System.Reflection.Missing

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧