小编mr_*_*org的帖子

为什么在C#中经常会看到"null!= variable"而不是"variable!= null"?

在c#中,您说明条件的顺序的执行速度是否有任何差异?

if (null != variable) ...
if (variable != null) ...
Run Code Online (Sandbox Code Playgroud)

从最近开始,我经常看到第一个,因为我习惯了第二个,所以引起了我的注意.

如果没有差异,第一个的优势是什么?

c# coding-style

100
推荐指数
5
解决办法
3万
查看次数

为什么事件不能在派生类中以与C#中的基类相同的方式使用?

在下面的代码中,我想通过派生/子类化它来扩展类的行为,并使用基类的事件:

public class A
{
    public event EventHandler SomeEvent;

    public void someMethod()
    {
        if(SomeEvent != null) SomeEvent(this, someArgs);
    }
}

public class B : A
{
    public void someOtherMethod()
    {
        if(SomeEvent != null) SomeEvent(this, someArgs); // << why is this not possible?
//Error: The event 'SomeEvent' can only appear on the left hand side of += or -= 
//(except when used from within the type 'A')
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么不可能?

这种情况的常见解决方案是什么?

c# events

31
推荐指数
3
解决办法
2万
查看次数

如何从SVG获取BuffererImage?

我正在使用Batik来处理SVG图像.有没有办法从SVG文件中获取java.awt.image.BufferedImage?

我知道有转码器,我可以将SVG转码为例如PNG,然后用ImageIO.read()加载PNG但我不想拥有临时文件.

java svg batik

19
推荐指数
2
解决办法
2万
查看次数

如何从OpenCV中的XML字符串中读取?

我知道如何将cv::Mat实例加载/保存到XML文件中(请参阅此问题).

但我真正需要的是解析包含XML 的std::string(或char *),并得到cv::Mat.假设我从数据库中获取XML,而不是从文件中获取XML.

那可能吗?

c++ xml opencv

12
推荐指数
1
解决办法
5649
查看次数

当工作表名称是单元格的值时,如何引用另一个工作表的单元格?

在excel 2007中,我在一个单元格中有一个公式,如下所示:

=COUNTIFS('2008-10-31'!$C:$C;">="&'$A7)
Run Code Online (Sandbox Code Playgroud)

现在我想让工作表的名称('2008-10-31')取决于某个单元格的值(比如说A1).就像是:

=COUNTIFS(A1!$C:$C;">="&'$A7) // error
Run Code Online (Sandbox Code Playgroud)

有办法做到这一点吗?或者我必须为它编写VBA宏吗?

excel worksheet-function excel-formula

10
推荐指数
2
解决办法
4万
查看次数

为什么boost :: format不能直接转换为std :: string?

以下是不可能的:

std::string s = boost::format("%d") % 1; // error
Run Code Online (Sandbox Code Playgroud)

你必须明确地调用str()方法:

std::string s = (boost::format("%d") % 1).str(); // OK
Run Code Online (Sandbox Code Playgroud)

它只是语法糖,但为什么不加入转换呢?

c++ boost boost-format

9
推荐指数
2
解决办法
8638
查看次数

为什么在C/C++/C#/ Java等命令式或OO语言中不存在交换/交换运算符?

我总是想知道为什么这样一个简单而基本的操作,比如交换两个变量的内容,并不是内置于许多语言中的.

它是计算机科学课程中最基本的编程练习之一; 它在很多算法中被大量使用(例如排序); 每隔一段时间就需要它,并且必须使用临时变量或使用模板/泛型函数.

它甚至是许多处理器上的基本机器指令,因此具有临时变量的标准方案将得到优化.

已经创建了许多不太明显的运算符,例如赋值运算符(例如+ =,可能是为了反映累积的机器指令而创建的,例如添加ax,bx),或者?? C#中的运算符.

那么,原因是什么?或者它确实存在,我总是错过它?

programming-languages language-design

8
推荐指数
2
解决办法
817
查看次数

如何在修补程序队列中使用mercurial合并功能,而不使用已弃用的qsave?

我有一个存储库,并使用mq补丁队列进行未完成的更改.补丁队列也受版本控制.

假设我有2个补丁p1和p2(按此顺序应用).现在我对p1进行了更改:

hg qnew p1
...
hg qnew p2
...
hg qref
hg com --mq -m"(Commit before reject)"
hg qpop p1
{make change}
hg qref
hg qpush -a
Run Code Online (Sandbox Code Playgroud)

......并且p2无法适用.

现在的标准方法是手动应用被拒绝的帅哥.我想使用像MqMergePatch这样的东西很好并使用mercurial的合并 - 但它基于不推荐使用的功能:

hg qsave // deprecated: use "hg rebase" instead
Run Code Online (Sandbox Code Playgroud)

我的问题是:如何用hg rebase做到这一点?

编辑

在看过存储库的日志之后,我根本不喜欢MqMergePatch对它做的事情.我使用补丁程序的主要目标是使存储库的历史记录清晰,并且不会散布无用的细节.

mercurial mercurial-queue

8
推荐指数
1
解决办法
2364
查看次数

如何包含生成的文件以使用 cmake 进行编译?

我的子目录“xsd”中有一组 .xsd 文件。我使用外部命令生成一组用于 XML 绑定的 .hxx 和 cxx 文件。

add_custom_command(
PRE_BUILD
OUTPUT ${PROJECT_SOURCE_DIR}/xsd/file1.hxx ${PROJECT_SOURCE_DIR}/xsd/file1.cxx
COMMAND ${XSD_EXECUTABLE} cxx-tree
    --file-list-prologue 'set(XSD_GENERATED_FILES '
    --file-list ${PROJECT_SOURCE_DIR}/cmake_xsd_filelist.txt
    --file-list-epilogue ')'
    --output-dir ${PROJECT_SOURCE_DIR}/xsd
    ${XSD_SOURCE_FILES}
DEPENDS ${XSD_SOURCE_FILES}
)
Run Code Online (Sandbox Code Playgroud)

该工具创建生成文件的列表。我有以下形式:

set(XSD_GENERATED_FILES
file1.cpp
file1.hpp
file2.cpp
file2.hpp
)
Run Code Online (Sandbox Code Playgroud)

到这里就好了。

现在我不知道如何继续。我想包含生成的文件列表并将它们添加到可执行文件中。

include(${PROJECT_SOURCE_DIR}/cmake_xsd_filelist.txt)
add_executable(Prog ${SOURCE_FILES} ${XSD_GENERATED_FILES})
Run Code Online (Sandbox Code Playgroud)

但这并没有达到我想要的效果。实际上,它什么也没做,因为最初cmake_xsd_filelist.txt是空的。

我的目标如下:

  • 当“xsd”文件夹中的文件发生更改时,执行 XSD_EXECUTABLE 来生成 .cpp 和 hpp 文件。
  • 仅在生成的 .cpp 文件发生更改时编译一次
  • 将生成的源文件添加到可执行文件中。

这甚至可以用 cmake 实现吗?如果是,怎么办?

cmake

6
推荐指数
1
解决办法
4860
查看次数

如何在Mac OS X下用C语言设置文件的创建日期?

Mac OS X的存储文件的创建时间,我知道如何与阅读stat()<sys/stat.h>.

我找不到办法,如何在C中设置创建时间.必须以某种方式可能,因为实用程序SetFile可以做到(SetFile是Apple的命令行工具包的一部分):

SetFile -d '12/31/1999 23:59:59' file.txt
Run Code Online (Sandbox Code Playgroud)

我怎么能用C做呢?

c macos

6
推荐指数
1
解决办法
842
查看次数

什么是python中的__anonymous类?

我是bitbake和python的新手.(对不起,如果这是愚蠢的话就问这个).

在yocto项目中,core-image.bbclass包含以下代码.

python __anonymous() {
    ................
    ................
}
Run Code Online (Sandbox Code Playgroud)

匿名课在这里是什么意思?

python openembedded bitbake yocto

4
推荐指数
1
解决办法
1126
查看次数

C#:在foreach语句中使用Directory.GetFiles的副作用并删除文件?

我有以下foreach循环:

using System.IO;
//...   
if (Directory.Exists(path))
{
    foreach(string strFile in Directory.GetFiles(path, "*.txt"))
    {
        // do something, possibly delete the file named strFile
    }
}
Run Code Online (Sandbox Code Playgroud)

删除当前用于foreach循环的目录中的文件时是否会有副作用?

c# file-io

1
推荐指数
1
解决办法
5162
查看次数

在SQL中的"group by"表达式:如何获取组中最常出现的字符串?

假设我们有下表:

Id   A    B
1    10   ABC
2    10   ABC
3    10   FFF
4    20   HHH
Run Code Online (Sandbox Code Playgroud)

作为"group by A"表达式的结果,我希望得到最常出现的B-Column的值:

select A, mostoften(B) from table group by A;

A    mostoften(B)
10   ABC
20   HHH
Run Code Online (Sandbox Code Playgroud)

我如何在Oracle 10g中实现这一目标?

备注:在平局的情况下(当最常出现多个值时),选择哪个值无关紧要.

sql oracle group-by oracle10g

1
推荐指数
1
解决办法
2383
查看次数