Tag: C#的

mmap()与读取块

我正在开发一个程序,用于处理可能达到100GB或更大容量的文件。 这些文件包含可变长度logging的集合。 我已经完成了第一个实现,现在正在寻求提高性能,特别是在更高效地执行I / O操作之后,因为input文件被多次扫描。 有没有经验法则使用mmap()与通过C ++的fstream库读取块? 我想要做的是从磁盘读取大块到缓冲区,从缓冲区处理完整的logging,然后阅读更多。 mmap()代码可能会变得非常混乱,因为mmap的d块需要位于页面大小的边界(我的理解),logging可能跨越页面边界。 有了fstream ,我只需要开始logging并重新阅读,因为我们不限于阅读位于页面大小边界上的块。 如何在不实际编写完整实现的情况下,在这两个选项之间做出决定? 任何经验法则(例如, mmap()快两倍)或简单的testing?

条件编译和框架目标

如果目标框架是较新的版本,那么我的项目的代码可能会大大改善。 我希望能够更好地利用C#中的条件编译来根据需要切换它们。 就像是: #if NET40 using FooXX = Foo40; #elif NET35 using FooXX = Foo35; #else NET20 using FooXX = Foo20; #endif 有没有这些符号是免费的? 我是否需要注入这些符号作为项目configuration的一部分? 似乎很容易做,因为我知道哪个框架是从MSBuild目标。 /p:DefineConstants="NET40" 更新:我的问题是人们如何处理这种情况? 你正在创build不同的configuration? 你是否通过命令行传递常量?

如何从ASP.NET中的任何类访问会话variables?

我在我的应用程序的App_Code文件夹中创build了一个类文件。 我有一个会话variables Session["loginId"] 我想在我的类中访问这个会话variables,但是当我写下面的行时,它会给出错误 Session["loginId"] 谁能告诉我如何访问ASP.NET 2.0(C#)中的app_code文件夹中创build的类中的会话variables

在C和C ++中将char转换为int

如何在C和C ++中将char转换为int ?

你如何清除一个stringstreamvariables?

我已经尝试了几件事情, std::stringstream m; m.empty(); m.clear(); 两者都不起作用。

在C或C ++好的gotos的例子

在这个线程中,我们看一下在C或者C ++中使用goto例子。 它的灵感来自人们投票决定的答案 ,因为他们以为我在开玩笑。 总结(标签从原来的变化更明确): infinite_loop: // code goes here goto infinite_loop; 为什么比替代品更好: 这是具体的。 goto是导致无条件分支的语言结构。 替代scheme取决于使用支持条件分支的结构,具有退化的始终为真的条件。 标签文件的意图没有额外的意见。 读者不必扫描早期break的干预代码(尽pipe对于一个无原则的黑客来说仍然有可能模拟continue早期goto )。 规则: 假装gotophobes没有赢。 据了解,上述不能用于实际的代码,因为它违背成熟的习惯用法。 假设我们都听说过“后藤认为有害”,并知道goto可以用来写意大利面代码。 如果你不同意这样一个例子,就单凭技术上的优点来批评它(“因为人们不喜欢转职”不是技术上的原因)。 让我们看看我们是否可以像大人一样谈论这个问题。 编辑 这个问题现在似乎已经完成 它产生了一些高质量的答案。 感谢大家,尤其是那些认真对待我的小循环例子的人。 大多数怀疑者担心缺乏范围。 正如@quinmars在评论中指出的,你总是可以在循环体上加上大括号。 我顺便注意到for(;;)和while(true)不要给你任意的花括号(并且省略它们会导致烦人的错误)。 无论如何,我不会再为了这个小事而浪费你的大脑力量 – 我可以忍受for(;;)和while(true) (如果我想保住我的工作)那样的无害和习惯。 考虑到其他的反应,我发现很多人把goto看成是你必须以另一种方式重写的东西。 当然,你可以通过引入一个循环,一个额外的标志,一堆嵌套的if或其他东西来避免goto ,但是为什么不考虑goto是否是最好的工具呢? 换句话说,人们为了达到预期的目的而准备忍受多less丑陋,以避免使用内置的语言特征? 我的意见是,即使添加一个标志是太高的价格付出。 我喜欢我的variables来表示问题或解决scheme域中的东西。 “单纯为了避免转向”不会削减它。 我会接受第一个给C模式分支到清理块的答案。 国际海事组织,这是所有张贴答案goto最强大的情况下,当然,如果你衡量一个憎恨必须经历,以避免它的扭曲。

在c ++中的多态性

据我所知: C ++提供了三种不同types的多态性。 虚拟function 函数名称重载 运算符重载 除上述三种多态性之外,还存在其他种类的多态性: 运行 编译时间 特别的多态性 参数多态性 我知道运行时多态性可以通过虚拟函数来实现, 静态多态性可以通过模板函数来实现 但是对于另外两个 特别的多态性 网站参数多态性说 , ad-hoc多态性: 如果可以使用的实际types的范围是有限的,并且在使用之前必须单独指定这些组合,这被称为ad-hoc多态性。 参数多态性: 如果所有代码都没有提及任何特定的types,因此可以透明地使用任何数量的新types,它被称为参数多态性。 我很难理解他们:( 任何人都可以用一个例子来解释它们吗? 我希望这个问题的答案能够帮助这些大学的许多新的辍学。

如何在延迟后触发块,如-performSelector:withObject:afterDelay:?

有没有办法在延迟之后调用一个带有基本参数的块,比如使用performSelector:withObject:afterDelay:但是使用像int / double / float这样的参数?

'ref'和'out'关键字有什么区别?

我创build一个函数,我需要传递一个对象,以便它可以被修改的function。 有什么区别: public void myFunction(ref MyClass someClass) 和 public void myFunction(out MyClass someClass) 我应该使用哪个,为什么?

C状态机devise

我正在用混合C和C ++编写一个小项目。 我正在build立一个小型的国家机器在我工作线程的中心。 我想知道你们的专家是否会分享你们的状态机devise技术。 注意:我主要是经过testing和实施的技术。 更新:基于所有收集的伟大意见,我已经解决了这个架构: