我试图了解如何在.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语言.
选择C++和面向对象的模型(类)在OpenGL(或DirectX)中实现模拟有什么缺点吗?使用C和过程编程范例是首选的吗?
我试图想出一个树遍历的算法,但我卡住了.
这是一个相当难的问题(与我提出的其他问题相比),所以我可能需要继续自己计算.但我想我会把它扔出去.
我有以下类结构:
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) 如何构建像SO这样的标记系统?
我在我的asp.net mvc网站上使用一个独特的文本框来提交"标签".
首先,我试图用逗号"asp.net,c#,sql server"分割标签.它的工作原理,但如果用户忘记用逗号分隔标签,我就有问题要拆分该字符串.
"asp.net c #sql server":sql server应该是单个标签,而不是两个"sql"+"server".
此外我"不能"(他不应该关心这个...)要求用户使用" - "字符分隔标签的单词:"sql-server"
有人帮忙吗?
我将如何使用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方法来做到这一点......
任何帮助赞赏
单程
我在亚马逊上搜索过,找不到关于lucene.net的书.你们有没有在lucene.net上找到一本像样的书呢?
在python中是否可以使用上面的代码而不引发异常?
def myfunc():
pass
# TypeError myfunc() takes no arguments (1 given)
myfunc('param')
Run Code Online (Sandbox Code Playgroud)
通常在php中,在某些情况下,我启动一个没有参数的函数,然后检索函数内部的参数.
在实践中,我不想在myfunc中声明参数,然后将一些参数传递给它.我找到的唯一解决方案是myfunc(*arg).还有其他方法吗?
如上所述 - 有谁知道双精度是否被隐式转换为加倍?(可空类型)
编辑:这到底是怎么回事?
双d = 5;
双?d2 = d为双倍?
使用标准Java库,从IPV4-address("127.0.0.1")的虚线字符串表示到等效整数表示(2130706433)的最快方法是什么.
相应地,反转所述操作的最快方法是什么 - 从整数2130706433到字符串表示"127.0.0.1"?
好吧,这可能非常简单,但我尝试的一切似乎都打成了砖墙.
我有一个带有两个属性的视图模型,它们绑定到我的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)
但它仍然会抛出相同的交叉线程错误.
我对线程不是很好,所以我不知道我可能做错了什么,有人能帮我一把吗?
c# ×5
.net ×1
arguments ×1
c++ ×1
dispatcher ×1
exception ×1
f# ×1
generic-list ×1
ip-address ×1
java ×1
lambda ×1
lucene.net ×1
mvvm ×1
opengl ×1
optimization ×1
performance ×1
python ×1
string ×1
tree ×1
wpf ×1
yield ×1