Tag: C#的

如何将列表绑定到combobox? (的Winforms)

我想连接一个绑定源到类对象的列表,然后对象值的combobox任何人都可以build议如何做到这一点 public class Country { public string Name { get; set; } public IList<City> Cities { get; set; } public Country() { Cities = new List<City>(); } } 是我的类,我想绑定它的名称字段绑定源,然后可以与一个combobox相关联

奇怪的行为时,将一个浮点数转换为int在C#

我有以下简单的代码: int speed1 = (int)(6.2f * 10); float tmp = 6.2f * 10; int speed2 = (int)tmp; speed1和speed2应该有相同的值,但实际上我有: speed1 = 61 speed2 = 62 我知道我可能应该使用Math.Round而不是投射,但我想了解为什么值是不同的。 我查看了生成的字节码,但除了存储和加载外,操作码是相同的。 我也尝试了相同的代码在Java中,我正确地获得62和62。 有人可以解释这个吗? 编辑:在实际的代码中,它不是直接6.2f * 10,而是一个函数调用*常量。 我有以下字节码: 对于速度1: IL_01b3: ldloc.s V_8 IL_01b5: callvirt instance float32 myPackage.MyClass::getSpeed() IL_01ba: ldc.r4 10. IL_01bf: mul IL_01c0: conv.i4 IL_01c1: stloc.s V_9 速度2: IL_01c3: ldloc.s V_8 […]

如何隐藏二进制代码中的string?

有时,从二进制文件(可执行文件)隐藏一个string是有用的。 例如,从二进制文件隐藏encryption密钥是有意义的。 当我说“隐藏”时,我的意思是让string在编译后的二进制文件中难以find。 例如,这个代码: const char* encryptionKey = "My strong encryption key"; // Using the key 编译后在其数据部分生成一个可执行文件,内容如下: 4D 79 20 73 74 72 6F 6E-67 20 65 6E 63 72 79 70 |My strong encryp| 74 69 6F 6E 20 6B 65 79 |tion key | 你可以看到,我们的秘密string可以很容易地find和/或修改。 我可以隐藏string… char encryptionKey[30]; int n = 0; encryptionKey[n++] […]

在基于范围for循环中使用通用引用的优点是什么?

如果我想执行只读操作, const auto&就足够了。 但是,我碰到了 for (auto&& e : v) // v is non-const 最近几次。 这让我想知道: 是否有可能在一些不起眼的angular落案例中使用通用引用有一些性能优势,与auto& or const auto&相比? ( shared_ptr是一个晦涩的angular落案件的嫌疑犯) 更新我在我的collections中find的两个例子: 迭代基本types时使用const引用的任何缺点? 我可以使用基于范围的for循环轻松地迭代地图的值吗? 请专注于这个问题: 为什么我要在基于范围的for循环中使用auto &&?

如何处理静态链接库之间的符号冲突?

编写一个库时最重要的规则和最佳实践之一是将库的所有符号放入一个特定于库的名称空间中。 由于namespace关键字,C ++使这个变得简单。 在C中,通常的做法是在标识符的前面添加一些库特定的前缀。 C标准的规则对这些进行了一些约束(为了安全编译):AC编译器可能只查看标识符的前8个字符,所以foobar2k_eggs和foobar2k_spam可以被有效地解释为相同的标识符 – 但是每个现代编译器都允许任意很长的标识符,所以在我们这个时代(21世纪),我们不应该为此烦恼。 但是如果你正面临一些你不能更改符号名称/标识符的库呢? 也许你只有一个静态的二进制和头或不想,或不允许调整和重新编译自己。

将使用goto泄漏variables?

goto跳过代码而不调用析构函数和事物是否是真的? 例如 void f() { int x = 0; goto lol; } int main() { f(); lol: return 0; } x不会泄露?

ObserveOn和SubscribeOn – 工作正在完成

基于阅读这个问题: SubscribeOn和ObserveOn有什么区别 ObserveOn设置Subscribe处理程序中代码的执行位置: stream.Subscribe(_ => { // this code here }); SubscribeOn方法设置stream的设置在哪个线程上完成。 我明白,如果这些没有明确设置,那么使用TaskPool。 现在我的问题是,可以说我做了这样的事情: Observable.Interval(new Timespan(0, 0, 1)).Where(t => predicate(t)).SelectMany(t => lots_of(t)).ObserveOnDispatcher().Subscribe(t => some_action(t)); where predicate和SelectMany lots_of在被执行,假设在调度器上正在执行some_action ?

检测是否安装了Visual Studio 2012的Visual C ++ Redistributable

如何检测Visual Studio 2012的Visual C ++ Redistributable是否安装? 我试了Google,没有人问这个问题,惊喜!

在C / C ++中使用libcurl下载文件

我正在构build一个应用程序(在使用Dev-C ++的Windows上),我希望它下载一个文件。 我正在做这个使用libcurl(我已经安装了使用packman的源代码)。 我发现一个工作的例子( http://siddhantahuja.wordpress.com/2009/04/12/how-to-download-a-file-from-a-url-and-save-onto-local-directory-in- c-using-libcurl / ),但下载完成后不会closures文件。 我希望有人来举例说明如何下载文件,无论是在C或C + +。 提前致谢!

为什么我不应该包含cpp文件,而是使用头?

所以我完成了我的第一个C ++编程任务,并获得了我的成绩。 但根据评分,我没有including cpp files instead of compiling and linking them标记, including cpp files instead of compiling and linking them 。 我不太清楚这意味着什么。 回头看看我的代码,我select不为我的类创build头文件,但在cpp文件中做了所有事情(似乎无需头文件就能正常工作…)。 我猜测,分级意味着我写了“#include”mycppfile.cpp“;” 在我的一些文件中。 我对#include的cpp文件的理由是: – 所有应该进入头文件的东西都放在我的cpp文件中,所以我假装它就像一个头文件 – 在猴子看到猴子做时尚的时候,我看到其他的头文件是#include在文件中,所以我做了同样的我的CPP文件。 那么我究竟做错了什么,为什么这么做呢?