我用的int是一个例子,但这适用于.Net中的任何值类型
在.Net 1中,以下内容会引发编译器异常:
int i = SomeFunctionThatReturnsInt();
if( i == null ) //compiler exception here
Run Code Online (Sandbox Code Playgroud)
现在(在.Net 2或3.5中)异常已经消失.
我知道为什么会这样:
int? j = null; //nullable int
if( i == j ) //this shouldn't throw an exception
Run Code Online (Sandbox Code Playgroud)
问题是因为可以int?为空,int现在有一个隐式转换int?.上面的语法是编译魔术.我们真的在做:
Nullable<int> j = null; //nullable int
//compiler is smart enough to do this
if( (Nullable<int>) i == j)
//and not this
if( i == (int) j)
Run Code Online (Sandbox Code Playgroud)
所以现在,当我们这样做时,i == null我们得到:
if( (Nullable<int>) i == null ) …Run Code Online (Sandbox Code Playgroud) 我有很多很多mp3文件,我想将它们合并到一个文件中.我使用了命令行方法
copy /b 1.mp3+2.mp3 3.mp3
Run Code Online (Sandbox Code Playgroud)
但是当它们很多并且它们的命名不一致时,它会很痛苦.时间似乎永远不会出现.
我正在考虑将 boost 作为依赖项转储... atm 我真正需要的唯一东西是shared_ptr<>,我可以从std::tr1gcc suite 4 中提供它。*
使用C#,我需要一个名为User具有用户名,密码,活动标志,名字,姓氏,全名等的类.
应该有方法来验证和保存用户.我只是为这些方法编写测试吗?我甚至需要担心测试属性,因为它们是.Net的getter和setter?
我需要确定我的Qt 4.4.1应用程序何时获得焦点.
我提出了两种可能的解决方案,但它们都不能完全按照我的意愿工作.
在第一个可能的解决方案中,我将来自qApp的focusChanged()信号连接到SLOT.在插槽中,我检查'旧'指针.如果它为'0',那么我知道我们已经切换到这个应用程序,我做我想做的事情.这似乎是让应用程序检测这里介绍的两个解决方案焦点的最可靠方法,但是遇到了下面描述的问题.
在第二种可能的解决方案中,我覆盖了'focusInEvent()'例程,如果原因是'ActiveWindowFocusReason',那就做我想要的.
在这两种解决方案中,代码都是在我不希望的时候执行的.
例如,我有这个代码覆盖focusInEvent()例程:
void
ApplicationWindow::focusInEvent( QFocusEvent* p_event )
{
Qt::FocusReason reason = p_event->reason();
if( reason == Qt::ActiveWindowFocusReason &&
hasNewUpstreamData() )
{
switch( QMessageBox::warning( this, "New Upstream Data Found!",
"New upstream data exists!\n"
"Do you want to refresh this simulation?",
"&Yes", "&No", 0, 0, 1 ) )
{
case 0: // Yes
refreshSimulation();
break;
case 1: // No
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
执行此操作时,将显示QMessageBox对话框.但是,当通过按"是"或"否"关闭对话框时,会立即再次调用此函数,因为我认为焦点在此时使用ActiveWindowFocusReason更改回应用程序窗口.显然我不希望这种情况发生.
同样,如果用户正在使用应用程序打开和关闭对话框和窗口等,我不希望激活此例程.注意:我不确定此例程被激活的情况,因为我已经尝试了一下,并且它不会发生在所有窗口和对话框中,尽管它至少发生在示例代码中显示的那个.
如果应用程序是从该应用程序外部关注的,而不是主窗口从其他对话框窗口聚焦,我只想激活它.
这可能吗?如何才能做到这一点?
感谢您提供任何信息,因为这对我们的应用程序非常重要.
雷蒙德.
我正在尝试按照提供的说明在我的Windows开发服务器上使用XAMPP 安装Laconica,一个开源微博应用程序.
该网站找不到PEAR,并抛出以下错误:
警告:require_once(PEAR.php)[function.require-once]:无法打开流:第31行的C:\ xampplite\htdocs\laconica\lib\common.php中没有此类文件或目录
致命错误:require_once()[function.require]:在C:\ xampplite\htdocs\laconica\lib\common中打开所需的'PEAR.php'(include_path ='.;\xampplite\php\pear\PEAR')失败.第31行的PHP
C:\xampplite\php\pearphpinfo() 告诉我包含路径是 .;\xampplite\php\pear我究竟做错了什么?为什么不包含PEAR文件夹?
在基于打印机HDC创建Graphics上下文时,是否有任何关于如何使用Graphics :: DrawImage()成功绘制具有alpha通道的位图的指针?打印机驱动程序通常不支持alpha混合 - 因此可以选择将所有内容渲染到屏幕外位图并将其发送到打印机.这通常是不可行的,特别是对于大幅面打印机的高分辨率打印.
我正在尝试实现我已经拥有的数据压缩思想,因为我想要在大量的测试数据库中运行它,我曾想过用C编写代码(我主要有像Ruby这样的脚本语言经验) TCL).
通过关于C的O'Reilly'牛'书,我意识到我不能简单地索引一个简单的'char'或'int'类型变量的位,因为我想做按位比较和运算符.
我对这种看法是否正确?使用枚举类型表示一个位(并创建这些数组,并编写函数转换为char和从char转换)是否合理?如果是这样,是否已在某个标准库中定义了这样的类型和函数?还有其他(更好的?)方法吗?是否有人可以指示我的某些示例代码?
谢谢 -