繁体   English   中英

需要解释为什么Clipboard.SetText(“”)不等于Clipboard.Clear()

[英]Need explanation why Clipboard.SetText(“”) is not equal to Clipboard.Clear()

我正在传递一篇关于Microsoft的Clipboard.SetText()方法的文章: Clipboard.SetText Method(String)

我意识到如果字符串为空(“”),它将抛出异常。

为什么会那样? 为什么它不等于Clipboard.clear()呢?

我只是好奇。

像许多方法一样,它将取决于实现。

在这种情况下,它实施得很差。 我个人认为在提供非null值时抛出ArgumentNullException是明智的,如文档链接中所述。

但是,将空字符串存储在剪贴板中是没有意义的,因此可能会设置检查以阻止这种情况发生,并使每个人的生活更轻松。

假设这使用标准Windows API来调用剪贴板,如果提供的值为NULL,则实际实现会导致不同的行为,因为这意味着当您“粘贴”或检索内容时将访问该值。

由于剪贴板可以根据剪贴板中指定的类型执行数据转换,理论上可能存在将空字符串解释为NULL或反之亦然的问题。

这是推测,因为文档中没有任何细节。 你必须测试它才能看到会发生什么。 SetClipboardData函数 (MSDN)中提供了一些有趣的信息。

例如,考虑getDataObject的不同行为, null与保存空字符串的数据对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM