标签: expression

通过MemberExpression获取属性类型

在这里问类似的问题 ,假设这种类型:

 public class Product {

public string Name { get; set; }
public string Title { get; set; }
public string Category { get; set; }
public bool IsAllowed { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

这个使用MemberExpression:

public class HelperClass<T> {

    public static void Property<TProp>(Expression<Func<T, TProp>> expression) {

        var body = expression.Body as MemberExpression;

        if(body == null) throw new ArgumentException("'expression' should be a member expression");

        string propName = body.Member.Name;
        Type proptype = null;

    }

}
Run Code Online (Sandbox Code Playgroud)

我这样使用它:

HelperClass<Product>.Property(p …
Run Code Online (Sandbox Code Playgroud)

c# expression properties c#-4.0

17
推荐指数
1
解决办法
8780
查看次数

表达式+变量值+绘图maintitle中的普通文本

我想在R图中获得如下标题:

title = "The significance level you entered is alpha = 0.05 which is often used."
Run Code Online (Sandbox Code Playgroud)

为了得到这个,我将整个文本分成几个小部分,所以我终于可以写了

title = paste(part1,part2,part3,part4)
Run Code Online (Sandbox Code Playgroud)

部分是:

part1 = "The significance level you entered is"

part2 = expression(alpha)

part3 = object@attribute

part4 = " which is often used."
Run Code Online (Sandbox Code Playgroud)

所以我无法将这些部分组合起来得到我的结果.

符号显示正确,第3部分打印为对象@属性(不是他的值)或符号未显示,对象的值打印正确.

我用?expression?print了,但没有得到它

提供的示例?plotmath也与我的情况不符.

plot expression r title

17
推荐指数
1
解决办法
1万
查看次数

void() 是有效的 C++ 表达式吗?

显然,这个三元表达式void()作为一个参数编译:

void foo() {}

//...
a == b ? foo() : void();
Run Code Online (Sandbox Code Playgroud)

标准是void()一个有效的表达式,还是只是一个编译器的东西?如果它是有效的,那么它是一种什么样的表达方式?

c++ expression void

17
推荐指数
2
解决办法
1213
查看次数

编译Expression <T>时,是否隐式缓存?

Expression<T>被编译,是由框架隐式缓存由此得到的代码?我正在考虑静态Regex方法,其中框架隐式编译并缓存最后几个正则表达式.

如果没有缓存编译Expression<T>对象,您是否可以推荐一些最佳实践来保持编译时间,或者如果我手动缓存表达式,可能会导致问题的任何问题?

public MyResultType DoSomething(int arg1, int arg2)
{
    var result = invokeHandler(
        (IDoSomethingHandler h) => h.DoSomething(arg1, arg2)
    );
    return result;
}

private TResult invokeHandler<T, TResult>(Expression<Func<T, TResult>> action)
    where T : class
{
    // Here, I might want to check to see if action is already cached.

    var compiledAction = action.Compile();
    var methodCallExpr = action as MethodCallExpression;

    // Here, I might want to store methodCallExpr in a cache somewhere.

    var handler = …
Run Code Online (Sandbox Code Playgroud)

.net c# linq caching expression

16
推荐指数
1
解决办法
4728
查看次数

使用C语言计算中缀表达式的最简单方法是什么?

假设用户输入中缀表达式作为字符串?使用C语言评估表达式结果的最简单方法(最简单的意思是短语 t)是什么?

可能的方法是将其转换为后缀然后使用stacks.But它相当长的过程.有没有办法使用像atoi()eval()这样的函数来简化工作?

c math expression infix-notation evaluate

16
推荐指数
3
解决办法
6070
查看次数

正则表达式中(?s)的含义

我对正则表达竞技场很新.最近我搜索了一个Powershell的正则表达式,它允许我匹配一个html标签,我在这个网站上找到了以下内容.

$content -match '(?s)<table[^>]+width\s*=\s*"300px"\s*.*?>(.*?)</table>'
Run Code Online (Sandbox Code Playgroud)

我一直在寻找所有正则表达式引用和书籍(Perl和Powershell),因为(?s)的含义没有运气.它看起来像一个条件,但错过了那个部分.

有人能指出我正确的方向吗?

谢谢

regex powershell expression

16
推荐指数
1
解决办法
1万
查看次数

Expression.Bind() - 它实际上做了什么?

所以我最近一直在玩动态构建表达式树,并遇到了这种方法,这看起来有点奇怪.起初,在经常编写代码之后,我认为"哦,这正是我需要的"

var left = member is FieldInfo ? Expression.Field(instance, (FieldInfo)member) : Expression.Property(instance, (PropertyInfo)member);
var right = ...
var assign = Expression.Assign(left, right);
Run Code Online (Sandbox Code Playgroud)

是的,我知道有Expression.PropertyOrField()呼叫,但它确实往返于反射,以便按名称查找成员,我通常已经拥有MemberInfo实例.

所以无论如何,我认为Expression.Bind()对我有用,但它做了一些我不太懂的事情.给出以下代码:

void Main()
{
    var m = typeof(Foo).GetField("Bar");
    Expression.Bind(m, Expression.Constant("")).Dump();
}

public class Foo
{
    public string Bar;
}
Run Code Online (Sandbox Code Playgroud)

它产生MemberAssignment表达Bar = "".但是没有实例也没有静态引用.我如何将这个表达式应用于和实例Foo?我找不到任何使用此方法的示例.

.net c# reflection expression expression-trees

16
推荐指数
1
解决办法
4353
查看次数

角度ng-repeat表达式作为变量

我正在尝试做这样的事情:

<ul>
    <li ng-repeat="{{myRepeatExpression}}">{{row.name}}</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

但由于ng-repeat逻辑处于指令的编译状态,因此它将其{{myRepeatExpression}}视为普通字符串而不是变量.显然,哪个不起作用.

那有什么解决方法吗?

expression directive angularjs ng-repeat

16
推荐指数
1
解决办法
1万
查看次数

在编程中,什么是表达式?

我用Google搜索了这个问题,并搜索了搜索结果,然而我似乎无法得到一个直接的答案.

这个问题是如此基本没有人想过要问它吗?

有人可以解释在编程中究竟是什么"表达".

另外我主要用Javascript编程,如果JS中的定义有所不同,你还可以突出显示区别吗?

expression

16
推荐指数
1
解决办法
1万
查看次数

生成添加到目标的所有数学表达式组合(Java家庭作业/访谈)

我试图解决下面的问题以解决编码问题,但无法在1小时内完成.我对算法的工作原理有所了解,但我不太清楚如何最好地实现它.我有下面的代码和问题.

pi的前12位数字是314159265358.我们可以将这些数字变成一个表达式,评估为27182(e的前5位),如下所示:

3141 * 5 / 9 * 26 / 5 * 3 - 5 * 8 = 27182
Run Code Online (Sandbox Code Playgroud)

要么

3 + 1 - 415 * 92 + 65358 = 27182
Run Code Online (Sandbox Code Playgroud)

请注意,输入数字的顺序不会更改.只需插入运算符(+, - ,/或*)即可创建表达式.

编写一个函数来获取一个数字列表和一个目标,并返回这些数字可以形成的所有方式,以表达式来评估目标

例如:
f("314159265358",27182)应该打印:

3 + 1 - 415 * 92 + 65358 = 27182
3 * 1 + 4 * 159 + 26535 + 8 = 27182
3 / 1 + 4 * 159 + 26535 + 8 = 27182
3 * 14 * 15 + …
Run Code Online (Sandbox Code Playgroud)

java algorithm math expression

16
推荐指数
1
解决办法
5688
查看次数