Tag: C#的

为什么有一个注入类名?

最近我看到了一个奇怪的C ++特性: 注入类名 。 class X { }; X x1; class X::X x2; // class X::X is equal to X class X::X::X x3; // …and so on… 但我不明白为什么这个function是必要的。 有没有需要这个function的练习? 我听说这个function在旧的C ++中不存在。 那么,什么时候推出? C ++ 03? C ++ 11?

configurationStreamReader是否closuresstream?

我正在发送一个stream来写入方法,在这些方法中,我正在使用二进制读取器/ wier。 当读者/写者得到处置时,无论是通过using还是只是当它没有被引用时,stream是否closures? 我会发送一个BinaryReader / Writer,但我也使用StreamReader(也许我应该绕过,我只用于GetLine和ReadLine)。 如果每次作家/读者closures时closuresstream,这是相当麻烦的。

为什么strncpy不安全?

我正在寻找为什么strncpy被认为是不安全的。 有没有人有这样的文件或利用它的例子?

什么是C#.NET中的App.config? 如何使用它?

我在C#.NET中完成了一个项目,其中我的数据库文件是一个Excel工作簿。 由于连接string的位置在我的编码中是硬编码的,所以在我的系统中安装它是没有问题的,但是对于其他系统是没有问题的。 有没有办法提示用户在完成应用程序安装后设置path? 我得到的答案是“使用App.Config”…任何人都可以告诉这是什么App.config,以及如何在我的上下文中使用它?

如何将计时器添加到C#控制台应用程序

只是这 – 如何添加一个计时器到C#控制台应用程序? 如果您可以提供一些示例编码,那将是非常好的。

ARM到C调用约定,注册保存

从我上次编码的arm汇编程序起,我已经有一段时间了,细节上我有点生疏。 如果我从arm调用C函数,我只需要担心保存r0-r3和lr,对吧? 如果C函数使用其他寄存器,是否负责将这些寄存器保存在堆栈中并恢复它们? 换句话说,编译器会为C函数生成代码。 例如,如果我在汇编函数中使用r10,我不必将其值推入堆栈或内存,并在C调用后popup/恢复它,是吗? 这是为arm-eabi-gcc 4.3.0。 我意识到我可以阅读整个EABI,但是那么缩写RTFM就是为了什么,对吧? 🙂

types转换 – 无符号到signed int / char

我试着执行下面的程序: #include <stdio.h> int main() { signed char a = -5; unsigned char b = -5; int c = -5; unsigned int d = -5; if (a == b) printf("\r\n char is SAME!!!"); else printf("\r\n char is DIFF!!!"); if (c == d) printf("\r\n int is SAME!!!"); else printf("\r\n int is DIFF!!!"); return 0; } 对于这个程序,我得到的输出: […]

我如何种一个随机类,以避免重复的随机值

我有一个静态类中的静态方法内的以下代码: Random r = new Random(); int randomNumber = r.Next(1,100); 我有这个循环内,我不断得到相同的randomNumber ! 这里有什么build议?

何时使用Task.Delay,何时使用Thread.Sleep?

有什么时候使用Task.Delay与Thread.Sleep的好规则? 具体来说,是否有一个最低的价值来提供一个是有效的/高效率的? 最后,由于Task.Delay在asynchronous/等待状态机上导致上下文切换,是否有使用它的开销?

鉴别扩展方法的思考

在C#中有一种使用reflection技术来确定一个方法是否已经作为扩展方法添加到类中? 给定一个如下所示的扩展方法是否可以确定Reverse()已经添加到string类? public static class StringExtensions { public static string Reverse(this string value) { char[] cArray = value.ToCharArray(); Array.Reverse(cArray); return new string(cArray); } } 我们正在寻找一种机制,在unit testing中确定扩展方法是由开发人员适当添加的。 这样做的一个原因是开发人员可能会将类似的方法添加到实际的类中,如果是的话,编译器会select该方法。