【问题标题】:CType function in C# [duplicate]C#中的CType函数[重复]
【发布时间】:2015-01-06 01:04:09
【问题描述】:

以下是来自 VB.NET 脚本的代码,用于在 RS.exe 脚本文件中设置 DataSource。你能帮我把它转换成C#吗?

整个代码如下。

Dim dataSources(0) As DataSource
Dim dsr0 As New DataSourceReference
dsr0.Reference = "/Aroh/Data Sources/VIPDataSource"
Dim ds0 As New DataSource
ds0.Item = CType(dsr0, DataSourceDefinitionOrReference) ' <=== This line here
ds0.Name = "DataSource1"
dataSources(0) = ds0
ds.SetItemDataSources("/Aroh/TestMe", dataSources)

我尝试使用 ds0.Item = (DataSourceDefinitionOrReference)dsr0 进行转换,但这给了我一个错误。

【问题讨论】:

标签: c# vb.net code-translation


【解决方案1】:

要么

ds0.Item = (DataSourceDefinitionOrReference)dsr0; 

ds0.Item = dsr0 as DataSourceDefinitionOrReference; 

应该使用

【讨论】:

  • 请注意,C# 转换运算符(括号)比 CType() 更严格。 C# 中没有与 DirectCast(比 C# 强制转换更严格)或 CType 完全等价的东西。但是,这只会对边缘情况产生影响,但可能会发生直接转换可能不起作用的情况。
【解决方案2】:

在无法直接转换的情况下,您可以向 DataSourceDefinitionOrReference 类添加工厂方法或构造函数重载,该类接受 DataSourceReference 并返回正确构造的实例。

【讨论】:

  • 非常感谢
猜你喜欢
  • 1970-01-01
  • 2013-02-18
  • 1970-01-01
  • 1970-01-01
  • 2023-02-26
  • 2011-08-16
  • 2011-12-31
  • 2022-12-22
  • 1970-01-01
相关资源
最近更新 更多