我正在传递一篇关于Microsoft的Clipboard.SetText()方法的文章: Clipboard.SetText Method (String)
我意识到如果字符串为空(“”),则会抛出异常。
为什么会那样?为什么它不等于Clipboard.clear()
?
我很好奇。
答案 0 :(得分:1)
与许多方法一样,它将取决于实现。
在这种情况下,实施起来很差。我个人认为在提供非ArgumentNullException
的值时抛出null
是明智的,如文档链接中所述。
然而,将空字符串存储在剪贴板中是没有意义的,因此可能会设置检查以阻止这种情况发生,并使每个人的生活更轻松。
假设使用标准Windows API来调用剪贴板,如果提供的值为NULL,则实际实现会导致不同的行为,因为这意味着当您“粘贴”或检索内容时将访问该值。
由于剪贴板可以根据剪贴板中指定的类型执行数据转换,理论上可能存在将空字符串解释为NULL或反之亦然的问题。
这是推测,因为文档中没有任何详细信息。你必须测试它才能看到会发生什么。一些有趣的信息可以在 SetClipboardData function (MSDN)中找到。
答案 1 :(得分:1)
例如,考虑getDataObject
,null
与保存空字符串的数据对象的不同行为。