我看到一开源项目中有一段判断剪贴板内存储数据是否是文本数据的代码,如下:
if (Clipboard.ContainsData(DataFormats.Text))
{
IDataObject cdata;
cdata = Clipboard.GetDataObject();
if (cdata.GetDataPresent(DataFormats.Text))
{
///要执行语句
}
}
很是不解,Clipboard.ContainsData(DataFormats.Text) 已经能够判断出剪贴板内是否文本数据,为什么还要将数据取出来,再利用if (cdata.GetDataPresent(DataFormats.Text))一句再重新判断呢?
还请哪位大侠来解释下
------解决思路----------------------
Clipboard.ContainsData
指示剪贴板中是否存在指定格式的数据,或可转换成此格式的数据。
Clipboard.GetDataObject
检索当前位于系统剪贴板中的数据。
DataObject.GetDataPresent
检索数据是否可以转换成指定的格式
根据csdn的解释,个人认为,可以省去Clipboard.ContainsData(DataFormats.Text)的判断