Tag: C#的

C#与==和Equals()之间的区别

我有一个Silverlight应用程序的条件比较2个string,出于某种原因,当我使用==它返回false而.Equals()返回true 。 这里是代码: if (((ListBoxItem)lstBaseMenu.SelectedItem).Content.Equals("Energy Attack")) { // Execute code } if (((ListBoxItem)lstBaseMenu.SelectedItem).Content == "Energy Attack") { // Execute code } 任何理由为什么发生这种情况?

编译/链接过程如何工作?

编译和链接过程如何工作? (注意:这是一个Stack Overflow的C ++常见问题解答的入口,如果你想批评在这个表单中提供FAQ的想法,那么在这个开始所有这些的meta上的贴子将是这个地方的答案。那个问题在C ++聊天室中进行监控,常见问题解决scheme首先出现,所以你的答案很可能会被那些提出这个想法的人阅读)。

如何停止BackgroundWorker窗体的closures事件?

我有一个窗体,产生一个BackgroundWorker,应该更新窗体自己的文本框(主线程),因此Invoke((Action) (…)); 呼叫。 如果在HandleClosingEvent我只是做bgWorker.CancelAsync()然后我得到ObjectDisposedException Invoke(…)调用,可以理解的。 但是,如果我坐在HandleClosingEvent和等待bgWorker完成,比.Invoke(…)永远不会返回,也可以理解。 任何想法如何closures此应用程序没有得到例外,或死锁? 以下是简单的Form1类的3个相关方法: public Form1() { InitializeComponent(); Closing += HandleClosingEvent; this.bgWorker.RunWorkerAsync(); } private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { while (!this.bgWorker.CancellationPending) { Invoke((Action) (() => { this.textBox1.Text = Environment.TickCount.ToString(); })); } } private void HandleClosingEvent(object sender, CancelEventArgs e) { this.bgWorker.CancelAsync(); /////// while (this.bgWorker.CancellationPending) {} // deadlock }

是使用随机和OrderBy一个很好的洗牌algorithm?

我在Coding Horror上看了一篇关于各种shufflealgorithm的文章 。 我看到有人在这个地方打乱了一个清单: var r = new Random(); var shuffled = ordered.OrderBy(x => r.Next()); 这是一个很好的洗牌algorithm吗? 它是如何工作的? 这是一个可以接受的方式吗?

为什么人们说在使用随机数发生器时存在模数偏差?

我已经看到这个问题很多,但从来没有看到一个真正的具体答案。 所以我打算在这里发布一个,希望能够帮助人们理解为什么在使用随机数生成器(如C ++中的rand()时确实存在“模偏差”。

是否有打印二进制格式的printf转换器?

我可以使用printf作为hex或八进制数进行打印。 有格式标签打印为二进制,或任意的基地? 我正在运行gcc。 printf("%d %x %o\n", 10, 10, 10); //prints "10 A 12\n" print("%b\n", 10); // prints "%b\n"

“解包”一个元组来调用一个匹配的函数指针

我试图存储在一个std::tuple不同数量的值,这将被用作参数调用一个函数指针匹配存储的types的参数。 我创build了一个简化的例子来展示我正在努力解决的问题: #include <iostream> #include <tuple> void f(int a, double b, void* c) { std::cout << a << ":" << b << ":" << c << std::endl; } template <typename …Args> struct save_it_for_later { std::tuple<Args…> params; void (*func)(Args…); void delayed_dispatch() { // How can I "unpack" params to call func? func(std::get<0>(params), std::get<1>(params), std::get<2>(params)); // But […]

如何将std :: string转换为const char *或char *?

如何将std::string转换为char*或const char* ?

从C函数返回一个局部variables

#include <stdio.h> int foo1(void) { int p; p = 99; return p; } char *foo2(void) { char buffer[] = "test_123"; return buffer; } int *foo3(void) { int t[3] = {1,2,3}; return t; } int main(void) { int *p; char *s; printf("foo1: %d\n", foo1()); printf("foo2: %s\n", foo2()); printf("foo3: %d, %d, %d\n", p[0], p[1], p[2]); return 0; […]

从标准input中捕获字符而不必等待input被按下

我永远不会记得我是如何这样做的,因为它对我来说很less出现。 但在C或C ++中,从标准input中读取字符而不等待换行(按Enter)的最佳方式是什么。 也理想情况下,它不会回应input字符到屏幕上。 我只想捕获击出控制台屏幕的击键。