簡體   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