- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个函数来测试 DataRow 对象的两个成员是否相等,所有这些成员最初都是字符串,但需要在比较之前转换为它们的实际数据类型。如果无法将数据转换为实际数据类型,则该函数应返回 false。这是我要争取的一般框架。
Private Function compareValues(ByVal row as DataRow, ByVal field as String, ByVal dType as Type) as Boolean
' Get the raw values from the DataRow
Dim raw1 As String = row("t1_" + field).ToString()
Dim raw2 As String = row("t2_" + field).ToString()
Dim val1, val2 As dtype
' Try to convert the raw strings to the target type
Try
val1 = CType(raw1, dType) '<--Error here
val2 = CType(raw2, dType) '<--Error here
Catch ex As Exception
Return False ' If either conversion fails, return false
End Try
' Compare the values in their actual types and return false is they don't match
If (Not val1 = val2) Then
Return False
End If
Return True
End Function
我得到的错误是:Type 'dType' is not defined.
我试图通过使用 Of
子句来通用化该函数:
Private Function compareValues(Of dtype)(ByVal row As DataRow, ByVal field As String) As Boolean
Dim raw1 As String = row("t1_" + field).ToString()
Dim raw2 As String = row("t2_" + field).ToString()
Dim val1, val2 As dtype
Try
val1 = CTypeDynamic(Of dtype)(raw1)
val2 = CTypeDynamic(Of dtype)(raw2)
Catch ex As Exception
Return False
End Try
If (Not val1 = val2) Then '<--Error here
Return False
End If
Return True
End Function
然而,尝试这样做会导致错误:Operator '=' is not defined for types 'dtype' and 'dtype'.
一般来说,我认为我没有使用of 子句正确。
给定一个数据行 dr
,它有两个字段 t1_size
和 t2_size
,它们的值分别为“01.92”和“1.92”,我打算这样调用函数:
Dim match as Boolean = compareValues(dr, "size", Double) 'evaluates to True
给定具有各自值“01.90”和“1.92”的相同数据行和字段,应以相同方式调用该函数,但返回 False。
考虑到 t1_size
和 t2_size
分别为“apple”和“01.92”,该函数应该以与前面示例相同的方式调用,并且仍然返回 False .
Steven Doggart 和 Styxxy 用他们的每一份贡献把它带回家。请在下面找到工作代码:
Private Function compareValues(Of dtype)(row As DataRow, field As String) As Boolean
Dim val1 As dtype
Dim val2 As dtype
Try
val1 = CType(row("t1_" + field), dtype)
val2 = CType(row("t2_" + field), dtype)
Catch ex As Exception
Return False
End Try
If (Not val1.Equals(val2)) Then
Return False
End If
Return True
End Function
调用如下,假设您有一个 DataRow,其中有两列您希望比较是否相等,“t1_size”和“t2_size”,每列都包含 float 的字符串表示形式:
Dim match as Boolean = compareValues(Of Double)(dr, "size")
最佳答案
你把它倒过来了。当dtype
是一个Type
变量时,您应该使用CTypeDynamic
方法,例如:
Private Function compareValues(row as DataRow, field as String, dType as Type) as Boolean
' ...
val1 = CTypeDynamic(raw1, dtype)
' ...
End Function
而当dtype
是泛型类型时,应该使用CType
,例如:
Private Function compareValues(Of dtype)(row As DataRow, field As String) As Boolean
' ...
val1 = CType(raw1, dtype)
' ...
End Function
但是,您可能希望将 raw1
和 raw2
定义为 Object
并将它们设置为实际的字段值。我怀疑您是否真的想将它们转换为字符串只是为了转身并将它们再次转换回正确的数据类型。例如:
Dim raw1 As Object = row("t1_" + field)
Dim raw2 As Object = row("t2_" + field)
正如 Styxxy 指出的那样,通用 Field
扩展方法是在 .NET Framework 3.5 版中添加的。它会为您进行转换,因此您可以跳过“原始”部分并执行如下操作:
Private Function compareValues(Of dtype)(row As DataRow, field As String) As Boolean
Dim val1 As dtype = row.Field(Of dtype)("t1_" + field)
' ...
End Function
关于vb.net - Visual Basic 动态类型转换和比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19254415/
我正在尝试将一个字符串逐个字符地复制到另一个字符串中。目的不是复制整个字符串,而是复制其中的一部分(我稍后会为此做一些条件......) 但我不知道如何使用迭代器。 你能帮帮我吗? std::stri
我想将 void 指针转换为结构引用。 结构的最小示例: #include "Interface.h" class Foo { public: Foo() : mAddress((uint
这有点烦人:我有一个 div,它从窗口的左上角开始过渡,即使它位于文档的其他任何位置。我试过 usign -webkit-transform-origin 但没有成功,也许我用错了。有人可以帮助我吗?
假设,如果将 CSS3 转换/转换/动画分配给 DOM 元素,我是否可以检测到该过程的状态? 我想这样做的原因是因为我正在寻找类似过渡链的东西,例如,在前一个过渡之后运行一个过渡。 最佳答案 我在 h
最近我遇到了“不稳定”屏幕,这很可能是由 CSS 转换引起的。事实上,它只发生在 Chrome 浏览器 上(可能还有 Safari,因为一些人也报告了它)。知道如何让它看起来光滑吗?此外,您可能会注意
我正在开发一个简单的 slider ,它使用 CSS 过渡来为幻灯片设置动画。我用一些基本样式和一些 javascript 创建了一支笔 here .注意:由于 Codepen 使用 Prefixfr
我正在使用以下代码返回 IList: public IList FindCodesByCountry(string country) { var query =
如何设计像这样的操作: 计算 转化 翻译 例如:从“EUR”转换为“CNY”金额“100”。 这是 /convert?from=EUR&to=CNY&amount=100 RESTful 吗? 最佳答
我使用 jquery 组合了一个图像滚动器,如下所示 function rotateImages(whichHolder, start) { var images = $('#' +which
如何使用 CSS (-moz-transform) 更改一个如下所示的 div: 最佳答案 你可以看看Mozilla Developer Center .甚至还有例子。 但是,在我看来,您的具体示例不
我需要帮助我正在尝试在选中和未选中的汉堡菜单上实现动画。我能够为菜单设置动画,但我不知道如何在转换为 0 时为左菜单动画设置动画 &__menu { transform: translateX(
我正在为字典格式之间的转换而苦苦挣扎:我正在尝试将下面的项目数组转换为下面的结果数组。本质上是通过在项目第一个元素中查找重复项,然后仅在第一个参数不同时才将文件添加到结果集中。 var items:[
如果我有两个定义相同的结构,那么在它们之间进行转换的最佳方式是什么? struct A { int i; float f; }; struct B { int i; float f; }; void
我编写了一个 javascript 代码,可以将视口(viewport)从一个链接滑动到另一个链接。基本上一切正常,你怎么能在那里看到http://jsfiddle.net/DruwJ/8/ 我现在的
我需要将文件上传到 meteor ,对其进行一些图像处理(必要时进行图像转换,从图像生成缩略图),然后将其存储在外部图像存储服务器(s3)中。这应该尽可能快。 您对 nodejs 图像处理库有什么建议
刚开始接触KDB+,有一些问题很难从Q for Mortals中得到。 说,这里 http://code.kx.com/wiki/JB:QforMortals2/casting_and_enumera
我在这里的一个项目中使用 JSF 1.2 和 IceFaces 1.8。 我有一个页面,它基本上是一大堆浮点数字段的大编辑网格。这是通过 inputText 实现的页面上的字段指向具有原始值的值对象
ScnMatrix4 是一个 4x4 矩阵。我的问题是什么矩阵行对应于位置(ScnVector3),旋转(ScnVector4),比例(ScnVector3)。第 4 行是空的吗? 编辑: 我玩弄了
恐怕我是 Scala 新手: 我正在尝试根据一些简单的逻辑将 Map 转换为新 Map: val postVals = Map("test" -> "testing1", "test2" -> "te
输入: This is sample 1 This is sample 2 输出: ~COLOR~[Green]This is sample 1~COLOR~[Red]This is sam
我是一名优秀的程序员,十分优秀!