Tag: C#的

什么时候是一个整数< – >指针转换实际上是正确的?

民间传说说: types系统存在的原因。 整数和指针是不同的types,在大多数情况下铸造它们是一种弊端,可能表明devise错误,应该避免。 即使在执行这样的转换时,也不会对整数和指针的大小进行假设(将void*为int是使代码在x64上失败的最简单方法),而不是int应该使用intptr_t或uintptr_t stdint.h 。 知道什么时候执行这样的演员实际上是有用的 ? (注意:对可移植性的代价稍微短一点的代码并不算“实际上有用”)。 我知道的一个例子是: 一些无锁多处理器algorithm利用了2 + -byte-alligned指针有一些冗余的事实。 然后,他们使用指针的最低位作为布尔标志,例如。 使用具有适当指令集的处理器,这可以消除对locking机制的需要(如果指针和布尔标志是分离的,则这是必要的)。 (注意:这种做法甚至可以通过java.util.concurrent.atomic.AtomicMarkableReference在Java中安全地执行) 更多的东西?

C ++中的“class:”是什么意思?

我从来没有见过它。 我认为这是一个“样本”的错字,但是当我看到它实际编译时,我感到非常困惑。 任何人都可以帮我找出答案吗? 我不认为这是一个goto标签。 void f() { class: sample { // there were some members declared here } x; }

什么是string_view?

string_view似乎是C ++库基础知识TS: N3921中提出的一个function 据我了解,它是一种types,代表某种types的string“概念”,是任何types的容器,可以存储的东西可以看作一个string的视图。 这是正确的吗 ? 如果这个build议被接受,那么规范的const std::string&参数types将变成string_view ? 关于string_view还有另外一个重点需要考虑吗?

string.h和strings.h之间的区别

我注意到(至less在Mac OS X上)有一个string.h头文件和一个strings.h头文件。 man 3 string显示它们包含不同的function。 这有什么理由吗?

C#使用stream

溪stream对我来说有点神秘。 我不知道什么时候使用哪个stream以及如何使用它们。 有人可以向我解释如何使用stream? 如果我理解正确,有三种streamtypes: stream read stream write stream 它是否正确? 而且,例如, Memorystream和FileStream什么区别?

如何在C ++ 11中终止一个线程?

我不需要正确地终止线程,或者使其响应“终止”命令。 我有兴趣使用纯C ++ 11强制终止线程。

如何在样式设置器中添加混合行为

我已经为Buttondevise了Blend行为。 我怎样才能将其设置为应用程序中的所有button。 <Button …> <i:Interaction.Behaviors> <local:MyBehavior /> </i:Interaction.Behaviors> </Button> 但是,当我尝试: <Style> <Setter Property="i:Interaction.Behaviors"> <Setter.Value> <local:MyBehavior /> </Setter.Value> </Setter> </Style> 我得到错误 属性“行为”没有可访问的setter。

捕获控制台出口C#

我有一个包含相当多的线程的控制台应用程序。 有线程监视某些条件,如果它们是真的就终止程序。 这个终止可以在任何时候发生。 我需要一个事件,可以在程序closures时触发,以便我可以清理所有其他线程并正确closures所有文件句柄和连接。 我不确定是否有一个已经内置到.NET框架,所以我问我写我自己的。 我想知道是否有这样一个事件: MyConsoleProgram.OnExit += CleanupBeforeExit;

在编译32位和64位时性能差异巨大(快26倍)

我试图衡量在访问值types和引用types列表时使用for和foreach的区别。 我使用下面的类来进行分析。 public static class Benchmarker { public static void Profile(string description, int iterations, Action func) { Console.Write(description); // Warm up func(); Stopwatch watch = new Stopwatch(); // Clean up GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); watch.Start(); for (int i = 0; i < iterations; i++) { func(); } watch.Stop(); Console.WriteLine(" average time: {0} ms", watch.Elapsed.TotalMilliseconds / iterations); […]

什么是const void?

std::is_void的描述规定: 如果T是typesvoid,const void,volatile void或const volatile void,则提供等于true的成员常数值。 那么什么可能是const void ,或者是一个volatile void ? 这个答案指出, const void返回types将是无效的(但在VC ++ 2015编译) const void foo() { } 如果按照标准, const void是无效的(VC是错误的),那么什么是const void ?