Tag: C#的

如何在C ++中重复一个string可变的次数?

我想在C ++的string开头插入'n'个空格(或任何string)。 是否有任何直接的方式来使用std :: strings或char *string? 例如在Python中,你可以简单地做 >>> "." * 5 + "lolcat" '…..lolcat'

在C中共享全局variables

我如何创build在C中共享的全局variables? 如果我把它放在一个头文件中,那么链接器会抱怨variables已经被定义了。 是唯一的方法来声明我的一个C文件中的variables,并手动把extern的所有其他C文件的顶部想要使用它? 这听起来并不理想。

在C#中检测到ContextSwitchDeadlock错误

我正在运行一个C#应用程序,并在运行时,我得到以下错误: CLR已经无法从COM上下文0x20e480转换到COM上下文0x20e5f0 60秒。 拥有目的地上下文/公寓的线程很可能是在不抽取Windows消息的情况下进行非抽取等待或处理非常长的运行操作。 这种情况通常会对性能产生负面影响,甚至可能导致应用程序无响应或内存使用量不断累积。 为了避免这个问题,所有的单线程单元(STA)线程应该使用抽取等待原语(比如CoWaitForMultipleHandles),并在长时间运行的操作中定期抽取消息。 任何人都可以请帮我解决这个问题吗? 非常感谢。

常数不能被标记为静态

我正在试图像这样声明一个PI常量: public static const double PI = Math.PI; 但为什么我得到这个错误? The constant 'Calendar.NewCalendar.PI' cannot be marked static

GCC和Clangparsing器是否真的是手写的?

看来GCC和LLVM-Clang使用手写recursion下降parsing器 ,而不是机器生成的,基于Bison-Flex的自底向上parsing。 请问有人可以证实这是事实吗? 如果是这样,为什么主stream编译器框架使用手写parsing器? 更新 : 这里有关这个话题的有趣的博客

为什么使用! 当转换为BOOL BOOL?

以这种方式将整数转换为布尔值的原因是什么? bool booleanValue = !!integerValue; 而不是仅仅 bool booleanValue = integerValue; 我所知道的是在VC ++ 7中,后者将导致C4800警告 ,而前者不会。 两者之间还有其他的区别吗?

在void方法中使用return是不好的做法吗?

想象下面的代码: void DoThis() { if (!isValid) return; DoThat(); } void DoThat() { Console.WriteLine("DoThat()"); } 在void方法中使用返回是可以的吗? 它有任何性能损失? 或者写一个这样的代码会更好: void DoThis() { if (isValid) { DoThat(); } }

如何比较C#中的数组?

可能重复: 最简单的方法来比较C#中的数组 我如何比较C#中的两个数组? 我使用下面的代码,但它的结果是错误的。 我期待这是真的。 Array.Equals(childe1,grandFatherNode);

如何在C#中处理XML

在C#2.0中处理XML文档,XSD等的最好方法是什么? 哪些类使用等什么是parsing和制作XML文件等的最佳做法 编辑:.net 3.5的build议也欢迎。

为什么malloc在gcc中将值初始化为0?

也许它从平台到平台是不同的,但是 当我使用gcc编译并运行下面的代码时,我每次在我的Ubuntu 11.10中都得到0。 #include <stdio.h> #include <stdlib.h> int main() { double *a = (double*) malloc(sizeof(double)*100) printf("%f", *a); } 为什么即使有calloc,malloc的行为也是如此? 这是否意味着即使您不希望有时将值初始化为0,也会产生不必要的性能开销? 编辑:哦,我以前的例子不是开始,但恰巧使用“新鲜”块。 我正在寻找的是为什么它分配一个大块时初始化它: int main() { int *a = (int*) malloc(sizeof(int)*200000); a[10] = 3; printf("%d", *(a+10)); free(a); a = (double*) malloc(sizeof(double)*200000); printf("%d", *(a+10)); } OUTPUT: 3 0 (initialized) 但是,谢谢指出,当mallocing有一个安全的原因! (从来没有想过)。 当分配新块或大块时,必须将其初始化为零。