首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Eval()上的扩展方法

Eval()上的扩展方法
EN

Stack Overflow用户
提问于 2012-01-18 01:36:37
回答 1查看 217关注 0票数 0

我有一个这样的扩展方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<Extension()>
Public Function Trim(value As Object, MaxLength As Integer) As String
    If value IsNot Nothing AndAlso value.ToString.Length > MaxLength Then
        Return value.ToString.Substring(0, MaxLength)
    Else
        Return value.ToString
    End If
End Function

我的假设是,我可以在绑定数据时使用Eval("MyColumnName").Trim(20) (而不是像MyMethod(Eval("MyColumnName"))那样做),但事实证明这是错误的。

有没有办法在Eval方法上使用扩展?

PS:我的扩展名被引用为全局引用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-18 02:23:48

事实证明,虽然可以扩展Object类型,但不能使用Object类型的变量来调用该方法。

MSDN Magazine: Basic Instincts: Extension Methods

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Dim myString As String = "ABC123"
Dim myObject As Object = "ABC123"
Dim myResult as String

myResult = myString.Trim(3)  ' Works
myResult = myObject.Trim(3)  ' Fails

所以我认为你在一行代码中最好的期望是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Eval("MyColumnName").ToString.Trim(20)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8904100

复制
相关文章
IDEA Eval Reset 使用方法
jetbrains 试用 一般来说,在 IDE 窗口切出去或切回来时(窗口失去/得到焦点)会触发事件,检测是否长时间(25 天)没有重置,给通知让你选择。(初次安装因为无法获取上次重置时间,会直接给予提示)
知识浅谈
2021/05/11
43.1K0
IDEA Eval Reset 使用方法
盘点JavaScript中Eval函数的使用方法
eval 内的代码在当前词法环境(lexical environment)中执行,因此它能访问外部变量:
前端进阶者
2021/07/22
1.7K0
【Groovy】Groovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )
在上一篇博客 【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 ) 中 , 分析 Thread 的扩展方法 start 方法 , 该方法调用如下 ,
韩曙亮
2023/03/30
9730
【Groovy】Groovy 扩展方法 ( 扩展静态方法示例 | 扩展实例方法示例 | 扩展实例方法与扩展静态方法代码相同 )
神奇的伊娃(eval),魔鬼的伊娃(eval)
eval() 函数功能非常强大,它可以接收一个字符串参数,当把一个字符串传递给 eval() 之后,eval() 会把这个字符串当成一个有效的表达式(所谓表达式就是 eval() 会把字符串的引号去掉,然后将中间的内容当成有效的代码)来求值,并返回计算结果:
编程文青李狗蛋
2019/08/08
1.1K0
小朋友学Python(28):join方法和eval方法
一、join方法 语法: str.join(sequence) 功能: join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串 参数: sequence -- 要连接的元素序列 返回值: 返回通过指定字符连接序列中元素后生成的新字符串 例1 str = "-"; seq = ("a", "b", "c"); # 字符串元组 newstr = str.join(seq) print(newstr) 运行结果: a-b-c 例2 mylist = ['1', '+', '2', '-', 'c
海天一树
2018/04/17
9230
String 的扩展方法
模板字符串(★★★) ES6新增的创建字符串的方式,使用反引号定义 let name = `zhangsan`; ​ 模板字符串中可以解析变量 let name = '张三'; let sayHello = `hello,my name is ${name}`; // hello, my name is zhangsan 模板字符串中可以换行 let result = { name: 'zhangsan', age: 20, sex: '男' } let htm
清出于兰
2020/10/26
6360
python 的eval()函数
主要参考:https://blog.csdn.net/chowyoungyoung/article/details/78879926
用户7886150
2020/12/22
1.2K0
【Groovy】Groovy 扩展方法 ( Groovy 扩展方法引入 | 分析 Groovy 中 Thread 类的 start 扩展方法 )
Groovy 可以对 JDK 中的一些类进行 方法扩展 , 这些 JDK 自带类可以执行额外的扩展方法 ;
韩曙亮
2023/03/30
1.5K0
扩展方法
扩展方法被定义为静态方法,但它们是通过实例方法语法进行调用的。 它们的第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。 扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。
wfaceboss
2019/04/08
6520
linux eval
eval 就是执行以下两个步骤 1.第一次,执行变量替换,类似与C语言的宏替代
雪影
2018/08/02
9090
jquery的扩展方法介绍
  最近一直在写js,这其中也少不了一位js的主角了jQuery,下面介绍的是jQuery的一些扩展,也就是jQuery的扩展方法,jQuery的扩展方法有两种方式,一种是jQuery本身的扩展方法,另一种是jQuery所选对象的扩展方法,下面一起来看。 一、方式列表:   1.jQuery.extend(Object);   // jQuery 本身的扩展方法   2.jQuery.fn.extent(Object);  // jQuery 所选对象扩展方法 二、调用示例:   1.jQuery 本身的扩
磊哥
2018/05/08
1.2K0
Python - eval()
eval 的作用域就是 g 指定的这个字典,外面的 x = 10 被屏蔽掉了,eval 是看不见的,所以使用了 x 为 5 的值
小菠萝测试笔记
2021/09/14
9040
jQuery源码研究:为jQ对象扩展的一些工具方法(上)
上一章,讨论的是jQuery对象及其原型上的extend()方法,在源码中,实现了支持开发者自行扩展新方法的功能,但其实jQuery也通过对extend()传入一个对象参数来添加官方扩展方法,这些工具方法都是扩展在jQuery类对象上的,所以调用时的写法要注意。
前端_AWhile
2019/08/29
6240
EVAL命令和EVALSHA命令的作用,在Redis中的实现方法
EVAL命令是Redis提供的功能之一,它可以让用户在Redis中执行Lua脚本。
一凡sir
2023/10/03
3.1K0
EVAL命令和EVALSHA命令的作用,在Redis中的实现方法
理解shell的eval命令
看以下两条命令: [zhangsan@XEN /sys]$ a="ls";b="\$a";c="$b";"$c" Hey! No command '$a' found, did you mean
一见
2019/01/02
1.2K0
python compile、eval、
    compile()函数允许程序员在运行时刻迅速生成代码对象,然后就可以用exec 语句或者内建函数eval()来执行这些对象或者对它们进行求值。一个很重要的观点是:exec 和eval()都可以执行字符串格式的Python 代码。当执行字符串形式的代码时,每次都必须对这些代码进行字节编译处理。compile()函数提供了一次性字节代码预编译,以后每次调用的时候,都不用编译了。
py3study
2020/01/09
1.4K0
【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
为 Thread 扩展 hello 方法 , 在该方法中传入 Closure 参数 , 在该方法中 , 执行传入的闭包参数 ;
韩曙亮
2023/03/30
8390
【Groovy】Groovy 扩展方法 ( 实例扩展方法配置 | 扩展方法示例 | 编译实例扩展类 | 打包实例扩展类字节码到 jar 包中 | 测试使用 Thread 实例扩展方法 )
点击加载更多

相似问题

Python eval的扩展

15

在类方法上使用eval()函数

10

JavaScript扩展eval()函数吗?

12

eval()的替代方法

11

eval()的替代方法

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文