为什么这在VB.Net中起作用:
Dim ClipboardStream As New StreamReader(
CType(ClipboardData.GetData(DataFormats.CommaSeparatedValue), Stream))
但这在C#中引发错误:
ClipboardStream = new StreamReader(Convert.ChangeType(
ClipboardData.GetData(DataFormats.CommaSeparatedValue), Stream));
老实说,我并不是100%地了解转换类型,我只在代码片段中使用过它们,现在我正尝试将简单的VB代码片段转换为C#版本...
最佳答案
ChangeType
接受Type
作为第二个参数,因此您应该编写typeof(Stream)
。 typeof(Stream)
求值为代表Type
类型的Stream
实例。仅使用Stream
无效,因为它不求值。这不是表达。
无论如何,您无论如何都不应该在这里使用ChangeType
,而应该进行转换,即CType
的C# equivalent:
ClipboardStream = new StreamReader((Stream)ClipboardData.GetData(DataFormats.CommaSeparatedValue));
关于c# - VB与C#— CType与ChangeType,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50112541/