Tag: C#的

“扔”和“扔前”有区别吗?

有一些post询问这两者之间的差别是什么。 (为什么我还要提这个…) 但是我的问题不同于我在另一个错误神似的处理方法中称之为“抛出”的方式。 public class Program { public static void Main(string[] args) { try { // something } catch (Exception ex) { HandleException(ex); } } private static void HandleException(Exception ex) { if (ex is ThreadAbortException) { // ignore then, return; } if (ex is ArgumentOutOfRangeException) { // Log then, throw ex; } if (ex is […]

获取实现接口的所有types

使用reflection,我怎样才能获得所有types的实现与C#3.0 / .NET 3.5与最less的代码,并最小化迭代? 这是我想重写的内容: foreach (Type t in this.GetType().Assembly.GetTypes()) if (t is IMyInterface) ; //do stuff

XDocument或XmlDocument

我现在正在学习XmlDocument但是我刚刚遇到了XDocument ,当我尝试search它们的差别或者好处的时候,我找不到有用的东西,请告诉我为什么你会使用另一个呢?

如何读取/parsingC中的input? FAQ

当我尝试读取/parsinginput时,遇到我的C程序问题。 帮帮我? 这是一个FAQ条目。 StackOverflow有许多与读取C语言input有关的问题,答案通常集中在特定用户的具体问题上,而不是真正地绘制整个图像。 这是一个全面涵盖一些常见错误的尝试,所以这个特定的问题家族可以简单地将它们标记为这个问题的重复: 为什么最后一行打印两次? 为什么我的scanf("%d", …) / scanf("%c", …)失败? 为什么gets()崩溃? … 答案被标记为社区维基。 随意改进(谨慎)扩展。

Scanf在C中跳过每一个while循环

我正在尝试开发一个简单的基于文本的hang子手游戏,主游戏循环以提示input每个字母的猜测开始,然后继续检查字母是否在单词中,如果是不是。 但是,当我运行游戏时,提示每次出现两次,程序不会等待用户的input。 它也是一种生活(如果是正确的input,则是一种生活,如果不是,则两种),所以不pipeinput与之前的input是不一样的。 这是我的游戏循环,简化了一下: while (!finished) { printf("Guess the word '%s'\n",covered); scanf("%c", &currentGuess); i=0; while (i<=wordLength) { if (i == wordLength) { –numLives; printf("Number of lives: %i\n", numLives); break; } else if (currentGuess == secretWord[i]) { covered[i] = secretWord[i]; secretWord[i] = '*'; break; } ++i; } j=0; while (j<=wordLength) { if (j == (wordLength)) { […]

二维数组是一个双指针?

int main() { matrix[2][4] = {{11,22,33,99},{44,55,66,110}}; int **ptr = (int**)matrix; printf("%d%d",**matrix,*ptr); } 但是,当一个二维数组作为parameter passing时,它将被types化(* matrix)[2] ..编译器将这个数组存储为什么types…是以二维数组还是双指针或者一个指向数组的指针。如果它以数组的forms存储,它在不同情况下如何解释不同。 请帮我理解。

uint8_t不能用cout打印

我有一个奇怪的问题关于在c ++中使用整数。 我写了一个简单的程序,将一个值设置为一个variables,然后打印出来,但它不能按预期工作。 我的程序只有两行代码: uint8_t aa=5; cout<<"value is "<<aa<<endl; 这个程序的输出是value is 即它为aa打印空白。 当我改变uint8_t到uint16_t上面的代码就像一个魅力。 我使用Ubuntu 12.04(64位),我的编译器版本是: gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

派生类中具有相同名称但具有不同签名的函数

我有一个具有相同名称的函数,但在基类和派生类中具有不同的签名。 当我试图在inheritance派生的另一个类中使用基类的函数时,我收到一个错误。 看下面的代码: class A { public: void foo(string s){}; }; class B : public A { public: int foo(int i){}; }; class C : public B { public: void bar() { string s; foo(s); } }; 我从gcc编译器收到以下错误: In member function `void C::bar()': no matching function for call to `C::foo(std::string&)' candidates are: int B::foo(int) 如果我删除int […]

如何避免按下input任何getchar()

这是C编程语言的“novato”问题: 在下一个代码中: #include<stdio.h> int main(void){ int c; while((c=getchar())!= EOF) putchar(c); return 0; } 我必须按Enter键打印所有使用getcharinput的字母,但是我不想这样做,我想要做的就是按下该字母,然后立即看到我重复引入的字母,而不按Enter键 。 例如,如果我按下字母“a”,我想在旁边看到另一个“a”,依此类推: aabbccddeeff….. 但是当我按下“a”时什么都没有发生,我可以写其他字母,只有当我按下回车键时才会出现副本: abcdef abcdef 我该怎么做? 我在Ubuntu下使用命令cc -o example example.c进行编译。

标准委员会关心的异国build筑

我知道,C和C ++标准留下了语言实现的许多方面 – 定义只是因为如果有一个具有其他特性的体系结构,编写一个标准的兼容编译器是非常困难或不可能的。 我知道40年前任何一台电脑都有自己独特的规格。 但是,我不知道今天使用的任何架构: CHAR_BIT != 8 signed是不是二补(我听说Java有这个问题)。 浮点不符合IEEE 754(编辑:我的意思是“不在IEEE 754二进制编码”)。 我问的原因是,我经常向人们解释,C ++没有强制要求像固定大小types那样的其他低级方面。 这很好,因为与其他语言不同,它使得你的代码在正确使用的时候是可移植的(编辑:因为它可以移植到更多的架构,而不需要仿真机器的低级方面,比如像符号+量级架构上的二进制补码algorithm) 。 但我感到不好意思,我不能指出任何特定的架构。 所以问题是:什么样的架构展现出上述特性? † uint*_t s是可选的。