问题列表 - 第21140页

在.NET中实现具有可替换后端实现的API(F#)

我试图了解如何在.NET世界中实现可替换组件或服务提供者接口.我怀疑我只是不知道要搜索的适当术语.

具体来说,我正在玩一个Matrix有不同后端的课程.最简单的是,矩阵提供了两个参数的get和set方法以及一个构造函数.实施对最终用户来说并不重要.例如,取决于矩阵大小,矩阵可以由内存数组,文件或分布式键值存储支持.我想隐藏后端实现并允许第三方提供新的后端实现.

一个理想的API,从IronPython调用,可能是这样的

a = matrix(data = 0, rows = 1000, cols = 10, backend = 'file://test.txt')
a[100, 2] = 1
print a[100, 2]
Run Code Online (Sandbox Code Playgroud)

我应该阅读什么来理解这类问题的模式?

我在F#和IronPython中玩游戏,但不相信这个问题特定于任何特定的.Net语言.

.net f# design-patterns

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

用于OpenGL图形的C或C++

选择C++和面向对象的模型(类)在OpenGL(或DirectX)中实现模拟有什么缺点吗?使用C和过程编程范例是首选的吗?

c++ opengl optimization performance

12
推荐指数
3
解决办法
6118
查看次数

产生状态转换中的最短路径

我试图想出一个树遍历的算法,但我卡住了.

这是一个相当难的问题(与我提出的其他问题相比),所以我可能需要继续自己计算.但我想我会把它扔出去.

我有以下类结构:

public class Transition
{
    // The state we are moving from.
    public String From { get; set; }
    // All the To states for this from
    public List<String>To { get; set; }
}

List<Transition> currentTransistions;
Run Code Online (Sandbox Code Playgroud)

当currentTransistions完全填写时,它看起来像这样(对我来说):

<?xml version="1.0" encoding="utf-8"?>
<ArrayOfTransition xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Transition>
    <From />
    <To>
      <string>Not Done</string>
    </To>
  </Transition>
  <Transition>
    <From>Not Done</From>
    <To>
      <string>In Progress</string>
      <string>Deleted</string>
    </To>
  </Transition>
  <Transition>
    <From>Deleted</From>
    <To>
      <string>Not Done</string>
    </To>
  </Transition>
  <Transition>
    <From>In Progress</From>
    <To>
      <string>Done</string>
      <string>Ready For Test</string>
      <string>Deleted</string>
    </To>
  </Transition> …
Run Code Online (Sandbox Code Playgroud)

c# tree yield

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

如何构建像SO这样的标记系统?

如何构建像SO这样的标记系统?

我在我的asp.net mvc网站上使用一个独特的文本框来提交"标签".

首先,我试图用逗号"asp.net,c#,sql server"分割标签.它的工作原理,但如果用户忘记用逗号分隔标签,我就有问题要拆分该字符串.

"asp.net c #sql server":sql server应该是单个标签,而不是两个"sql"+"server".

此外我"不能"(他不应该关心这个...)要求用户使用" - "字符分隔标签的单词:"sql-server"

有人帮忙吗?

c# string

9
推荐指数
3
解决办法
2398
查看次数

C#List <T> lambda查找然后修改元素

我将如何使用lambda使用List执行此操作

List<Foo> list....// create and add a bunch of Foo
int seconds = 100;

list.FindAll(x=>(x.Seconds == 0).Seconds = seconds) // yes I know that wont work...
Run Code Online (Sandbox Code Playgroud)

换句话说,找到Seconds == 0的所有foo对象并将值更改为我的局部变量...

我不想循环列表...我相信有一种方法可以用一个简单的lambda方法来做到这一点......

任何帮助赞赏

单程

c# lambda generic-list

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

有没有关于Lucene.NET的书籍

我在亚马逊上搜索过,找不到关于lucene.net的书.你们有没有在lucene.net上找到一本像样的书呢?

c# lucene.net

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

是否可以声明一个没有参数的函数,但是然后将一些参数传递给该函数而不引发异常?

在python中是否可以使用上面的代码而不引发异常?

def myfunc():
    pass

# TypeError myfunc() takes no arguments (1 given)
myfunc('param')
Run Code Online (Sandbox Code Playgroud)

通常在php中,在某些情况下,我启动一个没有参数的函数,然后检索函数内部的参数.

在实践中,我不想在myfunc中声明参数,然后将一些参数传递给它.我找到的唯一解决方案是myfunc(*arg).还有其他方法吗?

python arguments exception

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

是双倍还是双重?互换?

如上所述 - 有谁知道双精度是否被隐式转换为加倍?(可空类型)

编辑:这到底是怎么回事?

双d = 5;

双?d2 = d为双倍?

c#

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

从127.0.0.1到2130706433,然后再回来

使用标准Java库,从IPV4-address("127.0.0.1")的虚线字符串表示到等效整数表示(2130706433)的最快方法是什么.

相应地,反转所述操作的最快方法是什么 - 从整数2130706433到字符串表示"127.0.0.1"

java ip-address

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

WPF Dispatcher,后台工作者和很多痛苦

好吧,这可能非常简单,但我尝试的一切似乎都打成了砖墙.

我有一个带有两个属性的视图模型,它们绑定到我的WPF表单:

 bool IsWorking {get;set;}
 ObservableCollection<OtherViewModel> PendingItems {get;set;}
Run Code Online (Sandbox Code Playgroud)

我有一个方法,我调用从outlook中获取一些新的待处理项,但是我还要在表单上显示某些进度(旋转进度条),进度条可见性绑定到ViewModel上的IsWorking属性,以及网格绑定到PendingItems集合.

我希望能够将IsWorking设置为true,以便UI可以显示进度条,在后台运行工作,然后在完成后将IsWorking设置为false,这样进度条就会消失.

我创建了一个这样的背景工作者:

        worker = new BackgroundWorker();
        worker.DoWork += new DoWorkEventHandler(worker_DoWork);
        worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(worker_RunWorkerCompleted);
        worker.RunWorkerAsync();
Run Code Online (Sandbox Code Playgroud)

现在,worker_DoWork调用获取挂起项的方法并将它们添加到PendingItems集合中,所有内容都在后台运行,UI仍然响应,但在尝试添加到集合时,我得到了正常的交叉线程错误.我在调度程序调用中包装了更改集合的代码:

        // Update to show the status dialog.
        Dispatcher.CurrentDispatcher.Invoke(DispatcherPriority.Render,
                            new Action(delegate()
                            {
                                this.PendingItems.Add(\\Blah);
                            })
                          );
Run Code Online (Sandbox Code Playgroud)

但它仍然会抛出相同的交叉线程错误.

我对线程不是很好,所以我不知道我可能做错了什么,有人能帮我一把吗?

wpf multithreading dispatcher mvvm backgroundworker

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