为什么每个人都告诉我写这样的代码是不好的做法? if (foo) Bar(); //or for(int i = 0 i < count; i++) Bar(i); 我忽略大括号的最大理由是它有时可能是它们的两倍。 例如,下面是一些在C#中为标签绘制发光效果的代码。 using (Brush br = new SolidBrush(Color.FromArgb(15, GlowColor))) { for (int x = 0; x <= GlowAmount; x++) { for (int y = 0; y <= GlowAmount; y++) { g.DrawString(Text, this.Font, br, new Point(IconOffset + x, y)); } } } […]
如何将文件读入std::string ,即一次读取整个文件? 文本或二进制模式应由调用者指定。 解决scheme应符合标准,便携和高效。 它不应该不必要地复制string的数据,而应该避免在读取string时重新分配内存。 一种方法是统计文件大小,将std::string和fread()到std::string的const_cast<char*>() 'ed data() 。 这要求std::string的数据是连续的,这是标准所不需要的,但对于所有已知的实现来说似乎都是这样。 更糟糕的是,如果在文本模式下读取文件, std::string的大小可能不等于文件的大小。 一个完全正确的,符合标准的可移植解决scheme可以使用std::ifstream的rdbuf()构造成一个std::ostringstream并从那里转换成一个std::string 。 但是,这可能会复制string数据和/或不必要地重新分配内存。 所有相关的标准库实现是否足够聪明以避免所有不必要的开销? 还有另一种方法吗? 我错过了一些隐藏的Boost函数,它已经提供了所需的function吗? 请给出你的build议如何实现它。 void slurp(std::string& data, bool is_binary) 考虑到上面的讨论。
我最近升级到IE9-beta。 现在,在我的.Net(3.5)WinForm应用程序中,我想使用WebBrowser控件。 所以我的问题是, WebBrowser控件是否会显示IE9的所有属性和function? 我关心的是,我想在它上面渲染一些SVGgraphics。
我似乎无法find使用AES 128位encryption的一个很好的干净的例子。 有没有人有一些示例代码?
没有提到一本书,任何人都可以提供一个很好的解释CRTP的代码示例?
可能重复: 你如何确定在C文件的大小? 我怎样才能找出文件的大小? 我用C编写的应用程序打开。我想知道大小,因为我想把加载的文件的内容放入一个string,我使用malloc()分配。 只要写malloc(10000*sizeof(char)); 恕我直言,一个坏主意。
我有一个C#中的对象的通用列表,并希望克隆列表。 列表中的项目是可复制的,但似乎没有做list.Clone()的选项。 有没有简单的方法呢?
我发现我的构造函数开始看起来像这样: public MyClass(Container con, SomeClass1 obj1, SomeClass2, obj2…. ) 不断增加参数列表。 由于“容器”是我的dependency injection容器,为什么我不能这样做: public MyClass(Container con) 为每个class? 有什么缺点? 如果我这样做,感觉就像我正在使用一个荣耀的静态。 请分享你对IoC和dependency injection疯狂的想法。
我有一个文件:Base.h class Base; class DerivedA : public Base; class DerivedB : public Base; /*etc…*/ 和另一个文件:BaseFactory.h #include "Base.h" class BaseFactory { public: BaseFactory(const string &sClassName){msClassName = sClassName;}; Base * Create() { if(msClassName == "DerivedA") { return new DerivedA(); } else if(msClassName == "DerivedB") { return new DerivedB(); } else if(/*etc…*/) { /*etc…*/ } }; private: string […]
我有一个从我刚刚知道包含UTF-8的文件加载的byte[]数组。 在一些debugging代码中,我需要将其转换为string。 有没有一个class轮可以做到这一点? 在封面之下它应该只是一个分配和一个memcopy ,所以即使它没有被执行,也应该是可能的。