标签: dynamic

C#4中的动态关键字是否支持扩展方法?

听谈话C#4dynamic关键词,我想知道......请问这个功能是正交的其它.NET功能,例如将它支持扩展方法?

public static class StrExtension {
    public static string twice(this string str) { return str + str; }
}
...
dynamic x = "Yo";
x.twice(); // will this work?
Run Code Online (Sandbox Code Playgroud)

注意:这个问题是在C#4发布之前提出的,这就是为什么它将在未来时使用.

c# extension-methods dynamic c#-4.0

43
推荐指数
1
解决办法
8884
查看次数

当您在另一个变量中具有名称时,如何设置C#4动态对象的属性

我正在寻找一种方法来修改dynamicC#4.0对象上的属性,其属性名称仅在运行时已知.

有没有办法做某些事情(ExpandoObject仅用作示例,这可能是任何实现的类IDynamicMetaObjectProvider):

string key = "TestKey";
dynamic e = new ExpandoObject();
e[key] = "value";
Run Code Online (Sandbox Code Playgroud)

这相当于:

dynamic e = new ExpandoObject();
e.TestKey = "value";
Run Code Online (Sandbox Code Playgroud)

或者是前进反思的唯一途径?

.net c# reflection dynamic

43
推荐指数
4
解决办法
4万
查看次数

如何为字符串动态分配内存空间并从用户获取该字符串?

我想用C程序读取用户的输入.我不想使用数组,

char names[50];
Run Code Online (Sandbox Code Playgroud)

因为如果用户给出长度为10的字符串,那么剩余的空间就会被浪费掉.

如果我使用字符指针,

char *names;
Run Code Online (Sandbox Code Playgroud)

那么我需要以这样的方式为它分配内存,

names = (char *)malloc(20 * sizeof(char));
Run Code Online (Sandbox Code Playgroud)

在这种情况下,也存在内存浪费的可能性.

所以,我需要的是为字符串动态分配内存,该字符串与字符串的长度完全相同.

让我们假设,

如果用户输入是"stackoverflow",那么分配的内存应该是14(即字符串的长度= 13和'\ 0'的1个额外空间).

我怎么能实现这个目标?

c string malloc memory-management dynamic

43
推荐指数
4
解决办法
12万
查看次数

使用LD_PRELOAD指定多个文件

我知道如何用LD_PRELOAD覆盖一个库,例如,如下所示.

LD_PRELOAD =./ getpid.so ./testpid

现在我的问题是如何覆盖多个文件.假设我想覆盖getpid和getid,我该如何指定?

c linux x86 dynamic

43
推荐指数
2
解决办法
2万
查看次数

动态创建<Type>的对象

我的数据库中有一个表,用于管理我的应用程序之间的关系.它的本质是非常基本的 - parentType,parentId,childType,childId ...... all as int.之前我已经完成了这个设置,但是当我有6个不同的表我试图链接时,我使用了一个开关/案例设置.现在我有30个表,我正在尝试这样做,我希望能够这样做,而无需在我的switch命令中写入30个案例条目.

有没有办法可以使用字符串引用.Net类?我知道这是无效的(因为我尝试了几种变体):

Type t = Type.GetType("WebCore.Models.Page");
object page = new t();
Run Code Online (Sandbox Code Playgroud)

我知道如何获取对象的类型,但是我如何动态使用它来创建一个新对象?

.net c# dynamic

42
推荐指数
4
解决办法
9万
查看次数

动态加载java类文件的方法

什么是动态加载java类文件的好方法,以便编译到jar中的程序可以读取目录中的所有类文件并使用它们,以及如何编写文件以便它们具有相关的必要包名到罐子里?

java reflection load class dynamic

42
推荐指数
2
解决办法
7万
查看次数

动态设置Ruby对象的属性

如何在Ruby中动态设置对象属性,例如

def set_property(obj, prop_name, prop_value)
    #need to do something like > obj.prop_name = prop_value 

    #we can use eval but I'll prefer a faster/cleaner alternative:
    eval "obj.#{prop_name} = #{prop_value}"
end
Run Code Online (Sandbox Code Playgroud)

ruby dynamic

42
推荐指数
4
解决办法
3万
查看次数

强与静态打字和弱与动态打字的区别

根据我的理解,动态类型与弱类型相同,强类型与静态类型相同.有什么不同?谢谢

static dynamic weak-typing strong-typing

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

在C#中嵌入IronPython的问题(缺少编译器所需的成员'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember'

我正在尝试做一个简单的hello世界来测试在C#中嵌入IronPython但似乎无法解决这个问题.

这是我的C#文件;

using System;
using IronPython.Hosting;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;
using System.IO;

public class dynamic_demo
{
    static void Main()
    {
        var ipy = Python.CreateRuntime();

        dynamic test = ipy.UseFile(@"../../Test.py");

        test.Simple();
    }
}
Run Code Online (Sandbox Code Playgroud)

这是python类;

import sys

def Simple():
    print 'Hello from Python'
    print "Call Dir(): "
    print dir()
    print "Print the Path: " 
    print sys.path
Run Code Online (Sandbox Code Playgroud)

我的目标.NET框架是4.0,我正在使用IronPython 2.6 ..

当我运行这个时,我得到2个错误来自一个名为"CSC"的文件; 错误5缺少编译器所需的成员

'Microsoft.CSharp.RuntimeBinder.Binder.InvokeMember'C:\ Users\Tolga\documents\visual studio 2012\Projects\WindowsFormsApplication1\consoleTest\CSC consoleTest

另一个来自我创建的C#文件

错误6无法找到编译动态表达式所需的一种或多种类型.你错过了参考吗?C:\ Users\Tolga\documents\visual studio 2012\Projects\WindowsFormsApplication1\consoleTest\Program.cs 17 9 consoleTest

这是Build的输出

1>------ Build started: Project: consoleTest, Configuration: Debug Any …
Run Code Online (Sandbox Code Playgroud)

.net c# python ironpython dynamic

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

如何动态编译和加载外部java类?

(这个问题类似于我看过的很多问题,但大多数问题对我正在做的事情都不够具体)

背景:

我的程序的目的是让使用我的程序的人轻松制作自定义"插件",然后编译并加载到程序中以供使用(与我的程序中实现的不完整,慢速解析器相比).我的程序允许用户将代码输入到预定义的类中,该类扩展了与我的程序一起打包的编译类.他们将代码输入到文本窗格中,然后我的程序将代码复制到被覆盖的方法中.然后将其保存为.java文件(几乎)为编译器准备好了.该程序运行javac(java编译器),并将保存的.java文件作为输入.

我的问题是,我如何得到它,以便客户端(使用我的编译程序)将这个java文件(扩展我的InterfaceExample)保存在他们的计算机上的任何地方,让我的程序编译它(不说"找不到符号:InterfaceExample" )然后加载它并调用doSomething()方法?

我一直在看Q&A使用的是反射或ClassLoader,几乎描述了如何编译它,但没有一个对我来说足够详细/我完全不理解它们.

java load compilation external dynamic

42
推荐指数
2
解决办法
4万
查看次数