我有一个从数据库填充的对象列表.如果列表为空,我需要显示错误消息,否则显示网格视图.
如何List<T>在C#中检查a 是否为空?
我注意到我的一些函数实际上没有访问对象,所以我创建了它们static.然后编译器告诉我他们访问的所有变量也必须是静态的 - 到目前为止,这是可以理解的.我有一堆字符串变量,如
string RE_ANY = "([^\\n]*)";
string RE_ANY_RELUCTANT = "([^\\n]*?)";
Run Code Online (Sandbox Code Playgroud)
在课堂上等等.然后我做了所有static const因为他们永远不会改变.但是,如果我将它们移出类,我的程序只会编译:否则,MSVC++ 2010会抱怨"只有静态常量变量可以在类中初始化".
那很不幸.有解决方法吗?我想把它们留在他们所属的班级里面.
我想知道为什么我的一个项目的VDSERR.h列在"外部依赖项"下,另一个项目没有,并且给出了一个关于在那里定义的符号的"未定义符号"编译器错误.如何将此文件也包含在其他项目中?(可能是通过拖放,但我想知道这里的确切设置.)
在C++中编写这样的代码时:
bool allTrue = true;
allTrue = allTrue && check_foo();
allTrue = allTrue && check_bar();
Run Code Online (Sandbox Code Playgroud)
check_bar()如果check_foo()退回,将不会被评估false.这称为短路或短路评估,是惰性评估原则的一部分.
这是否适用于复合赋值运算符&=?
bool allTrue = true;
allTrue &= check_foo();
allTrue &= check_bar(); //what now?
Run Code Online (Sandbox Code Playgroud)
用逻辑OR替换所有&with |和truewith false.
c++ boolean lazy-evaluation short-circuiting compound-assignment
我的程序中有调试输出,如下所示:
#define DEBUG
...
#ifdef DEBUG
std::cout << "[RE_words] " << m_re << std::endl;
#endif
Run Code Online (Sandbox Code Playgroud)
并DEBUG在我的程序中手动定义.当我发布版本时,我总是注意到这一行.在Visual Studio中,还有用于调试和发行版本的配置,它们处理用于编译的命令行等.我还可以使用配置"Debug"自动定义DEBUG到编译器吗?怎么样?
在 C 中,
{0}通用零初始值设定项与 C++ 的通用零初始值设定项等效{}(后者在 C 中无效)。每当您想要一个完整但概念上不透明或实现定义类型的零初始化对象时,就有必要使用它。C 标准库中的经典示例是mbstate_t:Run Code Online (Sandbox Code Playgroud)mbstate_t state = { 0 }; /* correctly zero-initialized */与常见但不可移植的相比:
Run Code Online (Sandbox Code Playgroud)mbstate_t state; memset(&state, 0, sizeof state);
让我感到奇怪的是,后一个版本可能是不可移植的(即使对于实现定义的类型,编译器也必须知道大小)。这里的问题是什么?什么时候是memset(x, 0, sizeof x)不可移植的?
我通常使用Visual Studio,但是当我很快想要测试一些代码时,有些事情会困扰我:
getchar()在程序中插入或断点时,窗口就会关闭,因此我没有看到它.我正在寻找一个适合在Windows中进行真正,快速编程的程序.例如,从SO问题中复制一些代码,运行它并查看其输出.
我不认为CygWin下的控制台程序或g ++是一个很好的解决方案,因为cd在正确的目录中保存文件需要很长时间,我不习惯像Vim这样的编辑器,并且自己输入编译器命令行一直惹恼我等
所以我想我正在寻找的是一个非常轻量级的免费C/C++ IDE,它预先配置为可以使用免费编译器(如果它随附它,则可获得奖励积分.)
您可以推荐哪些内容来自上面列表中的至少两个项目?
是否有一个程序可以在交互式命令行(如Python)中执行/解释C或C++?
我经常通过一个程序逐步调试.我通常总是使用"步入"按钮来停止我正在调试的部分中的每一行,当我认为我得到当前行时,只需再次单击.
然而,真正破坏这种工作流程的是库调用.如果有字符串长度计算或地图存储或类似的东西,调试器将跳转到某个STL文件并继续.然后我必须按"跳出"跳回我正在看的程序.
这意味着:我从我真正感兴趣的文档中被中断,首先是因为代码突然消失并且显示了STL源,其次是因为我必须查看按钮栏并移动鼠标,当我跳过时回来,我常常有些困惑.
有没有办法阻止调试器打开STL源文件?某种黑名单,或者甚至更优雅,有些设置在某个地方?到目前为止,我找到了"仅我的代码"设置,但它仅适用于托管代码,我使用本机代码.
我试图解决这个问题,但找不到任何解决方案.我在普通模块中定义了UDT,并希望将其用作Public Sub类模块中的参数.然后我得到一个编译错误:
只有公共对象模块中定义的公共用户定义类型可以用作类模块的公共过程的参数或返回类型,或者用作公共用户定义类型的字段
然后我尝试在类中移动我的UDT,声明为Private.我得到这个编译错误:
私有枚举和用户定义的类型不能用作公共过程,公共数据成员或公共用户定义类型字段的参数或返回类型.
我最终尝试Public在类中声明它,并得到此编译错误:
无法在私有对象模块中定义公共用户定义的类型.
那么有没有办法让公共UDT用作类中公共子的参数?
我有一个XML文件,如下所示:
<encspot>
<file>
<Name>some filename.mp3</Name>
<Encoder>Gogo (after 3.0)</Encoder>
<Bitrate>131</Bitrate>
<Mode>joint stereo</Mode>
<Length>00:02:43</Length>
<Size>5,236,644</Size>
<Frame>no</Frame>
<Quality>good</Quality>
<Freq.>44100</Freq.>
<Frames>6255</Frames>
..... and so forth ......
</file>
<file>....</file>
</encspot>
Run Code Online (Sandbox Code Playgroud)
我想把它读成一个python对象,就像一个字典列表.因为标记是绝对固定的,所以我很想使用正则表达式(我很擅长使用它们).但是,我想我会检查是否有人知道如何在这里轻松避免正则表达式.我对SAX或其他解析没有太多经验,但我愿意学习.
我期待着在没有Python的正则表达式的情况下快速展示如何完成这项工作.谢谢你的帮助!
c++ ×5
c ×2
boolean ×1
c# ×1
compilation ×1
debugging ×1
gridview ×1
ide ×1
interactive ×1
list ×1
memset ×1
portability ×1
python ×1
regex ×1
static ×1
vb6 ×1
vba ×1
visual-c++ ×1
xml ×1
xml-parsing ×1