小编Dän*_*änu的帖子

Func <T>作为类成员,访问实例的其他成员

我有一个问题,是否可以(如果是,如何)classFunc<T, TResult>代表内部访问成员.

例如,我有以下内容class:

class NinjaTurtle
{
    public string Sound { get; set; }
    public Func<string, string> DoNinjaMove { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我想这样做

NinjaTurtle leonardo = new NinjaTurtle();
leonardo.Sound = "swiishhh!";
leonardo.DoNinjaMove = (move) => {
    if(move == "katana slash") return leonardo.Sound;
    return "zirp zirp zirp";
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我定义回调函数时,如何正确访问属性Sound?从函数外部使用对实例的引用是否可以?当我将对象传递给另一个方法时,或者当这将成为dll的一部分时,这仍然有用吗?我会从dll中的函数返回对象leonardo吗?它会"生存"序列化/反序列化吗?

(感谢弗拉基米尔和李,这个问题现在更具体到我想知道的内容).

c# lambda func

4
推荐指数
1
解决办法
1348
查看次数

并行执行callables

我想并行执行多个callables.但看起来ExecutorService总是等到所有的callables完成.

我尝试过以下方法:

final int nThreads = 10;
ExecutorService executorService = Executors.newFixedThreadPool(nThreads);
List<PrimeCallable> tasks = new ArrayList<PrimeCallable>();
for(int i = 0; i < nThreads; i++) {
    tasks.add(new PrimeCallable(0, i * 100 + 100, "thread" + i));
}

try {
    for(Future<List<Integer>> result : executorService.invokeAll(tasks)) {
        List<Integer> integers = result.get();
        for(Integer i : integers){
            System.out.println(i);
        }
    }
} catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
} catch (ExecutionException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

现在,当完成executorService中的所有可调用对象时,将调用for循环.据我所知,没有executorService.isParallel setter ;-). …

java multithreading callable

3
推荐指数
2
解决办法
5589
查看次数

IP地址左移表示

我在一些陈旧的和坏的C代码中发现了以下内容:

#define addr (((((147 << 8) | 87) << 8) | 117) << 8) | 107
Run Code Online (Sandbox Code Playgroud)

它是什么?嗯,我知道它是一个IP地址 - 向左移8位也是有道理的.但任何人都可以向我解释这个问题吗?那里发生了什么?

谢谢!

c ipv4

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

ASP.NET MVC 5(Visual Studio 2013 Preview)更改[授权]的登录URL

嘿伙计们我开始玩ASP.NET MVC 5预览,到目前为止一切都很好(我只能推荐它).

但是,我想知道在哪里可以为Built-In [Authorize]-Attribute 设置Login-Url .我搬到了AccountController一个区域,因此该路径登录动作不再/Account/Login,但是MyArea/Account/Login,这是由忽略[Authorize]-Attribute,这反过来又意味着,每当一个导航设置,一个控制器或动作与属性被重定向到错误的路径/Account/Login.

asp.net-mvc asp.net-mvc-routing asp.net-mvc-5

3
推荐指数
2
解决办法
3316
查看次数

使用(无框架)javascript操作DOM

好吧,我已经有很长一段时间没用过没有JQuery的JavaScript了......但是,随着编码的发展,我不得不为一个我无法确定提供JQuery的项目提供强大功能.

我正在尝试做的事情是使用JQuery:

$(document).ready(function() {
    $('#myDiv').append('<ul><li>a</li><li>b</li></ul>');
});
Run Code Online (Sandbox Code Playgroud)

现在对于非jquery的事情,这就是我所拥有的,我真的无法理解为什么它不起作用:

<html>
    <head>
        <script type="text/javascript">
            function load() {
                var s = '<ul><li>a</li><li>b</li></ul>'; 
                var element = document.getElementById("myDiv");
                element.innerHtml += s;
            }
        </script>
    </head>
    <body onload="load()">
        <div id="myDiv"></div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

事情是,没有任何事情发生(虽然函数被调用).可能是在调用load()时DOM没有准备好吗?我依稀记得这个代码在firefox 2.x IE7时代工作......

什么是(a)正确的解决方案?

javascript dom

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

使用 pybind11 混合类型转换和不透明类型

我正在使用 pybind11 的不透明类型。例如,我为 stl 容器定义了一个std::vector<uint32_t>,它是方法的参数类型FromVec

void FromVec(std::vector<uint32_t> vec);

PYBIND11_MAKE_OPAQUE(std::vector<uint32_t>);

PYBIND11_MODULE(tmap, m)
{
    py::bind_vector<std::vector<uint32_t>>(m, "VectorUint", 
      "Unsigned 32-bit int vector.");

    m.def("from_vec", &FromVec, py::arg("vec")
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我现在可以(在 Python 中)执行以下操作:

vec = VectorUint([2, 66, 262, 662, 26, 62])
from_vec(vec)
Run Code Online (Sandbox Code Playgroud)

但是,类型转换不再起作用,因为该函数现在需要 aVectorUint并且不再接受list,例如:

l = [2, 66, 262, 662, 26, 62]
from_vec(l)
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以同时允许倾斜类型和类型转换?也就是说,当list传递 a 而不是倾斜绑定时VectorUint,它会转换为 astd::vector<uint32_t>而不是 Python 抛出“不兼容的函数参数”?

c++ python pybind11

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

使用C#读取Excel文件 - 选择工作表

我正在用C#和OleDB(12.0)读取一个excel文件.在那里,我必须使用我希望阅读的表单的名称指定select语句([Sheet1$]).

this.dataAdapter = 
    new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString);
Run Code Online (Sandbox Code Playgroud)

是否可以选择第一张纸,无论名称是什么?

谢谢.

.net c# oledb excel

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

Java:从字符串加载类

我知道这可能与类加载器有关,但是我找不到一个例子(可能是我正在谷歌搜索错误的关键字.

我试图从字符串加载一个类(或方法).该字符串不包含类的名称,但包含类的代码,例如

class MyClass implements IMath {
    public int add(int x, int y) {
         return x + y;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后做这样的事情:

String s = "class MyClass implements IMath { public int add(int x, int y) { return x + y; }}";
IMath loadedClass = someThing.loadAndInitialize(string);
int result = loadedClass.add(5,6);
Run Code Online (Sandbox Code Playgroud)

现在显然,someThing.loadAndInitialize(string)- 部分是我不知道如何实现的部分.这甚至可能吗?或者更容易运行JavaScripts并以某种方式"给"变量/对象(如x和y)?

谢谢你的任何提示.

java reflection classloader

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

从ThreadPool向ObservableCollection添加项

我的问题非常简单我有一个包含类型的(私有)对象的类ObservableCollection<T>,现在我想运行一些线程(按顺序,因此ThreadPool而不是BackgroundWorkers),它们将新项添加到ObservableCollection<T>.

如果是,ObservableCollection<T>那么说,a ProgressBar,一切都会很简单( - > Invoke),但我不知道如何调用该ObservableCollection<T>对象.

我的目标是拥有一个BackgroundWorker可以运行顺序的东西.

先感谢您.

c# multithreading

0
推荐指数
1
解决办法
1132
查看次数