[英]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.