Tag: C#的

Boost最常用的部分

当我发现boost::lexical_cast我心想:“我为什么不早点知道这个呢?” – 我讨厌不得不写代码 stringstream ss; ss << anIntVal; mystring = ss.str(); 现在我写 mystring = boost::lexical_cast<string>(anIntVal); 昨天,在stackoverflow,我遇到了提升分裂(另一个gem,这将节省我编写代码)。 string stringtobesplit = "AA/BB-CC") vector<string> tokens; boost::split(tokens, stringtobesplit, boost::is_any_of("/-")); // tokens now holds 3 items: AA BB CC 我将开始浏览boost文档,寻找其他可以定期使用的函数,但是我觉得这会很容易错过。 你最不喜欢使用哪种助推function?

如何将string更改为QString?

什么是最基本的方法呢?

log4net不起作用

嘿,我有我的web.config这个configuration <log4net> <appender name="LogFileAppender" type="log4net.Appender.FileAppender"> <param name="File" value="mylog.log" /> <param name="AppendToFile" value="true" /> <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="" /> <param name="Footer" value="" /> <param name="ConversionPattern" value="%d [%t] %-5p %m%n" /> </layout> </appender> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" > <layout type="log4net.Layout.PatternLayout"> <param name="Header" value="[Header]\r\n" /> <param name="Footer" value="[Footer]\r\n" /> <param name="ConversionPattern" value="%d [%t] %-5p %m%n" /> </layout> </appender> […]

传递一个C ++对象到自己的构造函数合法吗?

我惊讶地意外地发现以下的作品: #include <iostream> int main(int argc, char** argv) { struct Foo { Foo(Foo& bar) { std::cout << &bar << std::endl; } }; Foo foo(foo); // I can't believe this works… std::cout << &foo << std::endl; // but it does… } 我将构造对象的地址传递给它自己的构造函数。 这看起来像来源层面的循环定义。 标准是否真的允许你在对象构造之前将一个对象传入一个函数,或者这个未定义的行为? 我想这并不奇怪,因为所有的类成员函数都有一个指向其类实例的数据的指针,作为一个隐式参数。 数据成员的布局在编译时是固定的。 请注意,我不是问这是否有用或好主意, 我只是在学习更多的课程。

手编写的GUI与Qtdevise器GUI

我花这些假期学习写Qt应用程序。 我几个小时前就在读Qtdevise器,这让我想知道:在Qt中编写真实世界应用程序的人使用什么来devise他们的GUI? 事实上,人们如何devise一般的GUI? 例如,我发现手工编写代码在概念上比使用Qt Designer更简单,但对于复杂的GUI Designer来说也许是有意义的。 大型graphics用户界面可能可以使用devise器,但随着时间的推移,复杂度的增加可能会变得非常困难(这只是我的看法)。 我还下载了AmaroK的源代码,以便了解这些人正在做什么,并且发现了很多对addWidget()和朋友的调用,但是没有一个由Designer创build的XML文件(除此之外:AmaroK必须是我最喜欢的应用程序任何平台)。 那么,创buildGUI的“正确”方法是什么呢? devise师还是代码? 让我们来进行这个讨论,考虑以下types的GUI: 简单的对话只需要input,显示一些结果并退出。 假设一个应用程序需要一个YouTubeurl并将video下载到用户的硬盘上。 新手可能会开始的那种应用程序。 中级别的graphics用户界面(比如说一个带有一些工具栏/菜单项目的粘性笔记编辑器)。 以xPad为例( http://getxpad.com/ )。 我会说大多数应用程序属于“公用事业”类别。 非常复杂的GUI,像AmaroK或OpenOffice。 当你看到他们时,你知道他们,因为他们让你的眼睛stream血。

使用这个指针会导致热循环中出现奇怪的去最佳化

我最近遇到了一个奇怪的去优化(或者说错过了优化的机会)。 考虑将3位整数数组有效解包为8位整数的函数。 它在每个循环迭代中解包16个整数: void unpack3bit(uint8_t* target, char* source, int size) { while(size > 0){ uint64_t t = *reinterpret_cast<uint64_t*>(source); target[0] = t & 0x7; target[1] = (t >> 3) & 0x7; target[2] = (t >> 6) & 0x7; target[3] = (t >> 9) & 0x7; target[4] = (t >> 12) & 0x7; target[5] = (t >> […]

C ++模块 – 为什么他们从C ++ 0x中删除? 他们会回来吗?

我刚刚在C ++ 0x中发现了这个旧的C ++ 0x草案 。 这个想法是通过编写只有.cpp文件才能离开当前的.h / .cpp系统,然后在编译过程中生成模块文件,然后再由其他.cpp文件使用。 这看起来像一个非常棒的function。 但我的问题是:为什么他们从C ++ 0x中删除它? 是因为技术上的困难太多了吗? 时间不够? 你觉得他们会考虑为它做一个更加版本的C ++吗?

为什么在检查null和VB.NET和C#中的值方面有所不同?

在VB.NET中发生这种情况: Dim x As System.Nullable(Of Decimal) = Nothing Dim y As System.Nullable(Of Decimal) = Nothing y = 5 If x <> y Then Console.WriteLine("true") Else Console.WriteLine("false") '' <– I got this. Why? End If 但在C#中发生这种情况: decimal? x = default(decimal?); decimal? y = default(decimal?); y = 5; if (x != y) { Debug.WriteLine("true"); // <– I […]

在for循环中避免if语句?

我有一个名为Writer的类,它具有如下所示的函数writeVector : void Drawer::writeVector(vector<T> vec, bool index=true) { for (unsigned int i = 0; i < vec.size(); i++) { if (index) { cout << i << "\t"; } cout << vec[i] << "\n"; } } 我试图不要有重复的代码,同时仍然担心性能。 在函数中,我正在对我的for循环的每一轮执行if (index)检查,即使结果总是相同的。 这是对“担心performance”的反对。 我可以很容易地避免这种情况,把支票放在我以外的地方。 但是,我会得到大量重复的代码: void Drawer::writeVector(…) { if (index) { for (…) { cout << i << "\t" […]

从x到y的共变数组转换可能导致运行时exception

我有一个private readonly列表( IList<LinkLabel> )。 我后来将LinkLabel添加到此列表中,并将这些标签添加到FlowLayoutPanel ,如下所示: foreach(var s in strings) { _list.Add(new LinkLabel{Text=s}); } flPanel.Controls.AddRange(_list.ToArray()); Resharper给我一个警告: Co-variant array conversion from LinkLabel[] to Control[] can cause run-time exception on write operation 。 请帮我弄清楚: 这是什么意思? 这是一个用户控件,不会被多个对象访问来设置标签,所以保持代码不会影响它。