Tag: C#的

返回语句与退出()在main()

我应该使用exit()还是仅在main() return语句? 就我个人而言,我喜欢return语句,因为我感觉它就像阅读任何其他函数一样,当我阅读代码时,stream程控制是平滑的(在我看来)。 即使我想重构main()函数, return似乎是比exit()更好的select。 exit()做了什么特别的return不?

为什么我不应该在“尝试” – “捕捉”包装每个块?

我一直认为,如果一个方法可以抛出一个exception,那么不要用一个有意义的try块来保护这个调用是鲁莽的。 我只是张贴' 你应该总是打包调用,可以尝试,赶上块。 “ 这个问题 ,并被告知,这是”非常糟糕的build议“ – 我想明白为什么。

在C#中,如何重新抛出InnerException而不丢失堆栈跟踪?

我正在通过反思调用一种可能导致exception的方法。 我怎样才能传递exception给我的调用者没有包装reflection放在它呢? 我重新抛出InnerException,但是这破坏了堆栈跟踪。 示例代码: public void test1() { // Throw an exception for testing purposes throw new ArgumentException("test1"); } void test2() { try { MethodInfo mi = typeof(Program).GetMethod("test1"); mi.Invoke(this, null); } catch (TargetInvocationException tiex) { // Throw the new exception throw tiex.InnerException; } }

正确使用Task.Run时,只是asynchronous等待

我想问你关于何时使用Task.Run的正确架构的Task.Run 。 我在WPF .NET 4.5应用程序(Caliburn Micro框架)中遇到了laggy UI。 基本上我在做(非常简化的代码片段): public class PageViewModel : IHandle<SomeMessage> { … public async void Handle(SomeMessage message) { ShowLoadingAnimation(); // Makes UI very laggy, but still not dead await this.contentLoader.LoadContentAsync(); HideLoadingAnimation(); } } public class ContentLoader { public async Task LoadContentAsync() { await DoCpuBoundWorkAsync(); await DoIoBoundWorkAsync(); await DoCpuBoundWorkAsync(); // I am not […]

C ++中“const”的用法有多less?

作为一名新手C ++程序员,有一些对我来说看起来还是很模糊的构造,其中一个是const 。 你可以在很多地方使用它,并有许多不同的效果,初学者几乎不可能活着出来。 一些C ++大师会一次解释一下各种用法和/或为什么不使用它们?

什么时候应该使用noexcept?

noexcept关键字可以适用于许多函数签名,但我不确定在实际中何时应该考虑使用它。 根据我迄今为止所读到的内容, noexcept的最后一刻似乎解决了移动构造函数抛出时出现的一些重要问题。 但是,我仍然无法为一些实际问题提供令人满意的答案,这些问题使我更多地了解了noexcept 。 有很多函数的例子,我知道永远不会抛出,但编译器无法自己确定。 在所有这些情况下,我是否应该在函数声明中添加noexcept的内容? 不得不考虑每个函数声明之后是否需要附加noexcept ,这将大大降低程序员的生产力(坦率地说,这将是一个痛苦的屁股)。 对于哪种情况,我应该更加小心使用noexcept ,并且在哪些情况下我可以逃避隐含的noexcept(false) ? 什么时候可以切实地期望在使用noexcept之后观察性能改进? 具体来说,给出一个代码,在添加noexcept之后,C ++编译器能够生成更好的机器代码。 就我个人而言,由于为编译器提供了更多的自由度来安全地应用某些优化,我关心的是noexcept 。 现代编译器以这种方式利用noexcept吗? 如果没有,我可以指望他们中的一些人在不久的将来这样做吗?

随着时间的推移移动GameObject

我从一个Swift SpriteKit背景学习Unity,在这个背景下,移动一个精灵的x位置就像运行一个动作一样简单,如下所示: let moveLeft = SKAction.moveToX(self.frame.width/5, duration: 1.0) let delayAction = SKAction.waitForDuration(1.0) let handSequence = SKAction.sequence([delayAction, moveLeft]) sprite.runAction(handSequence) 我想知道一个等同的或类似的方法,将一个精灵移动到一个特定的位置一段特定的时间(比如说一秒),而不必在更新函数中调用这个延迟。

如何在C ++ 11中有效地select标准库容器?

有一个众所周知的图像(备忘单)称为“C ++容器的select”。 这是一个stream程图,select最好的容器为所需的用法。 有人知道它是否已经有了C ++ 11的版本吗? 这是前一个:

什么是“静态”function?

问题是关于纯C函数,而不是C ++ static方法,如评论中所澄清的。 好吧,我明白什么是staticvariables,但什么是static函数? 为什么如果我声明一个函数,让我们说void print_matrix ,在我们说ac (没有ah ),并包括"ac" – 我得到"print_matrix@@….) already defined in a.obj" ,但是如果我声明它为static void print_matrix那么它编译? 更新只是为了清除事情 – 我知道包括.c是不好的,正如你们许多人指出的那样。 我只是暂时清除main.c空间,直到我更好地了解如何将所有这些函数组合到适当的.h和.c文件中。 只是一个临时的快速解决scheme。

为什么要使用dependency injection?

我试图理解dependency injection (DI),并再次失败。 这似乎很愚蠢。 我的代码从来不是一团糟。 我几乎不写虚拟函数和接口(虽然我只做了一次蓝月亮),所有的configuration都被神奇地用json.net(有时使用XML序列化器)序列化成一个类。 我不太明白它解决了什么问题。 它看起来像一个方式来说:“嗨,当你遇到这个函数,返回一个这种types的对象,并使用这些参数/数据。 但是…为什么我会用这个? 注意我从来不需要使用object ,但是我明白这是什么意思。 在使用DI的网站或桌面应用程序中,有哪些实际情况? 我可以很容易地想出为什么有人可能想要在游戏中使用接口/虚函数的情况,但是在非游戏代码中使用非常罕见(难以记忆单个实例)。