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