Tag: C#的

最干净的方式来编写重试逻辑?

偶尔我需要在放弃之前多次重试一次手术。 我的代码是这样的: int retries = 3; while(true) { try { DoSomething(); break; // success! } catch { if(–retries == 0) throw; else Thread.Sleep(1000); } } 我想重写这一般的重试function,如: TryThreeTimes(DoSomething); 在C#中可能吗? TryThreeTimes()方法的代码是什么?

如何在Visual Studio 2010中使用Boost

关于如何在Visual Studio 2010中的空项目中使用Boost库,一步一步的解释是什么?

在scanf之后,fgets不起作用

#include <stdio.h> #include <string.h> #include <ctype.h> void delspace(char *str); int main() { int i, loops; char s1[101], s2[101]; scanf("%d", &loops); while (loops–) { fgets(s1, 101, stdin); fgets(s2, 101, stdin); s1[strlen(s1)] = '\0'; s2[strlen(s2)] = '\0'; if (s1[0] == '\n' && s2[0] == '\n') { printf("YES\n"); continue; } delspace(s1); delspace(s2); for (i = 0; s1[i] != […]

非常量引用绑定到临时,Visual Studio的错误?

我在编译gcc一些可移植代码时遇到了这个问题。 基本上这个奇怪的代码在Visual Studio中编译,这实际上只是打动了我的脑海: class Zebra {int x;}; Zebra goo() {Zebra z; return z;} void foo(Zebra &x) { Zebra y; x = y; foo(goo()); } Visual studio让这个飞行。 gcc将捕获这个作为编译错误。 有趣的是,如果你把Zebrainputint, VC++会报错。 相当矛盾的行为。 思考?

parsingdate时间与PST / CEST / UTC /等forms的时区

我试图parsing国际date时间string类似于: 24-okt-08 21:09:06 CEST 到目前为止,我有这样的东西: CultureInfo culture = CultureInfo.CreateSpecificCulture("nl-BE"); DateTime dt = DateTime.ParseExact("24-okt-08 21:09:06 CEST", "dd-MMM-yy HH:mm:ss …", culture); 问题是我应该用什么格式string中的'…'? 查看自定义date和时间格式string MSDN页似乎没有列出用于parsingPST / CEST / GMT / UTCforms的时区的格式string。

graphics节点坐标评估

哪些( https://stackoverflow.com/questions/492893/graph-drawing-c-library )库可以用来评估节点坐标? 我的意思是我想通过点击来绘制和操作graphics来添加一些节点或删除,然后使用一些轻量级库来评估坐标。 所有我需要的是algorithm,可以在点文件和speciefied布局( http://en.wikipedia.org/wiki/DOT_language )给我graphics节点和2D点的一致性。 可预测的语言:C ++,C#,Java

当Directory.GetFiles()被拒绝访问时忽略文件夹/文件

我试图显示在选定的目录(和任选的子目录)中find的所有文件的列表。 我遇到的问题是,当GetFiles()方法遇到无法访问的文件夹时,它会引发exception,并停止进程。 我如何忽略这个exception(并忽略受保护的文件夹/文件)并继续添加可访问的文件到列表中? try { if (cbSubFolders.Checked == false) { string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath); foreach (string fileName in files) ProcessFile(fileName); } else { string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedPath, "*.*", SearchOption.AllDirectories); foreach (string fileName in files) ProcessFile(fileName); } lblNumberOfFilesDisplay.Enabled = true; } catch (UnauthorizedAccessException) { } finally {}

如何在Qt,GCD风格的给定线程中执行函数或lambda?

在带GCD的ObjC中,有一种方法可以在任何旋转事件循环的线程中执行lambda。 例如: dispatch_sync(dispatch_get_main_queue(), ^{ /* do sth */ }); 要么: dispatch_async(dispatch_get_main_queue(), ^{ /* do sth */ }); 它在主线程的队列中执行某些操作(相当于C ++中的[]{ /* do sth */ } ),可以是阻塞的,也可以是asynchronous的。 我怎样才能在Qt中做同样的事情? 从我读过的内容来看,我想这个解决scheme会以某种方式向主线程的某个对象发送一个信号。 但是什么对象? 只是QApplication::instance() ? (那是生活在主线程中的唯一对象)。什么信号? 从目前的答案和我目前的研究,我似乎真的需要一些虚拟对象坐在主线程与一些插槽,只是等待一些代码执行。 所以我决定QApplication 。 我目前的代码,这是行不通的(但也许你可以帮助): #include <QApplication> #include <QThread> #include <QMetaMethod> #include <functional> #include <assert.h> class App : public QApplication { Q_OBJECT public: App(); signals: […]

后增和前增概念?

我不明白后缀和前缀增量或减量的概念。 任何人都可以提供更好的解释?

在“foreach”循环中修改列表的最好方法是什么?

C#/ .NET 4.0中的一个新function是,您可以在foreach更改枚举而不会发生exception。 请参阅Paul Jackson的博客条目“并发的有意义的副作用:在枚举中删除项目”以获取有关此更改的信息。 什么是最好的方法来做到以下几点? foreach(var item in Enumerable) { foreach(var item2 in item.Enumerable) { item.Add(new item2) } } 通常我使用IList作为caching/缓冲直到foreach结束,但有没有更好的方法?