问题列表 - 第18037页

为什么同时使用str_replace()和preg_replace()?

我在Perl之后认识了PHP,所以当我第一次找到preg_*函数时,我基本上只使用了那些.后来我读到str_replace()在处理文字文本时更快.所以我的问题是,不能preg_replace()str_replace()搜索模式不使用特殊字符那样有效吗?也许只是分析模式,在正则表达式和纯文本算法之间进行选择?

php regex string algorithm performance

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

如果我使用delete p而不是delete [] p作为数组,结果是什么?

可能重复:
为什么有一个特殊的新数组和删除数组?
(POD)释放内存:删除[]等于删除?

如果我使用delete p而不是delete [] p作为数组,结果是什么?我遇到了这个问题的两个答案.

1只释放第一个元素.

2遇到灾难性的结局.

我的问题是,这两个怎么会发生?如果只释放第一个元素,为什么会有灾难?任何人都可以举个例子吗?

c++

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

哪个是快速比较:Convert.ToInt32(stringValue)== intValue或stringValue == intValue.ToString()

在开发我的应用程序时,我遇到了一些比较的东西,它是:

    string str = "12345";
    int j = 12345;
    if (str == j.ToString())
    {
        //do my logic
    }
Run Code Online (Sandbox Code Playgroud)

我以为上面的东西也可以用:

    string str = "12345";
    int j = 12345;
    if (Convert.ToInt32(str) == j)
    {
        //do my logic
    }
Run Code Online (Sandbox Code Playgroud)

所以我开发了一个示例代码来测试性能,哪个更好

        var iterationCount = 1000000;
        var watch = new Stopwatch();
        watch.Start();
        string str = "12345";
        int j = 12345;
        for (var i = 0; i < iterationCount; i++)
        {
            if (str == j.ToString())
            {
                //do my logic
            }
        }
        watch.Stop();
Run Code Online (Sandbox Code Playgroud)

第二个:

  var iterationCount = …
Run Code Online (Sandbox Code Playgroud)

c# comparison

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

滚动自己的XML解析器/ XML解析算法?

所以,作为一个有趣的项目,我决定编写自己的XML解析器.不,不解析特定文档,不,不使用XML解析器库.我的意思是编写代码以将任何XML文档解析为可用的数据结构.只是因为我喜欢挑战.:-)

据说,到目前为止它被证明是有趣的.它最初看起来并不容易解析(特别是当你开始考虑特殊字符,CDATA,空标签,评论等)时.

在任何人都知道的地方是否有任何记录良好的XML解析算法或解释?看起来有各种各样的Queue和Stack以及BTree等等实现,但我不确定我是否曾经见过一个简单,记录良好的XML解析器算法......

我再说一遍:不是在寻找一个预先构建的解析器库!我正在寻找有关如何创建自己的预构建解析器库的信息!不要告诉我"使用expat"或"使用SAX"或其他什么.那不是我要求的.

xml parsing

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

C#中的虚方法或事件

我目前正在编写一个小C#库来简化实现很少的物理模拟/实验.

主要组件是在SimulationForm内部运行定时器循环并从用户隐藏样板代码.实验本身将通过三种方法定义:

  1. Init() (初始化一切)
  2. Render(Graphics g) (渲染当前模拟状态)
  3. Move(double dt)(移动实验dt几秒钟)

我只是想知道让用户实现这些功能的更好选择是什么:

1)由继承表单覆盖的虚拟方法

protected virtual void Init() {} 
...
Run Code Online (Sandbox Code Playgroud)

要么

2)事件

public event EventHandler<MoveSimulationEventArgs> Move = ...
...
Run Code Online (Sandbox Code Playgroud)

编辑:请注意,方法不应该是抽象的.其实,还有更和他们都不具有实施.由于许多模拟不需要它们,因此将它们放在外面通常很方便.

关于这是一个"正常形式"的酷事是你可以写

partial class frmMyExperiment : SimulationForm {
}
Run Code Online (Sandbox Code Playgroud)

并且您完全能够与设计器和所有继承的控件和设置/属性进行交互.我不想通过采用完全不同的方法来失去这些功能.

c# design-patterns

9
推荐指数
3
解决办法
1612
查看次数

与sinatra Authlogic?

我找不到关于如何使用资源authlogic西纳特拉.或者至少没有关于使用authlogic进行身份验证的规范方法的文档...

任何人都有指向一些教程,示例代码的指针或可以勾勒出一个最小的authlogic/sinatra示例?

提前致谢.

ruby authentication sinatra authlogic

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

我在C#中的checkedlistbox显示了它要显示的对象的类型,但不显示它的名称

我在C#中的检查列表框中显示对象时遇到问题.我可以添加对象,但是当对象显示给用户时,程序会将复选框选择输出为Salesform.order,而不是像我想要的那样在订单类中调用tostring方法.这导致多个订单显示为相同的东西:"Salesform.order".

orderCheckList.Items.Add(orderUp);
Run Code Online (Sandbox Code Playgroud)

(这里,orderUp是一个带有客户名称等字段的订单)

有人可以帮忙吗?我知道有一个简单的解决方案,我忽略了.

c# checkedlistbox winforms

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

在程序文件中使用exe调用表达式

我正在尝试运行Powershell命令来调用7-Zip以使用以下命令压缩文件夹:

$command = $SevenZip + " a " + $targetDirForZip + $GetDateName + "_" + $dir.Name + ".7z " + $dir.FullName
Invoke-Expression $command
Run Code Online (Sandbox Code Playgroud)

已经设置了输入$ command的变量,$ SevenZip是"c:\ Program Files\7-Zip\7z.exe"

这不起作用,我正试图找出从Powershell调用7-Zip的最佳方法.想法?

powershell 7zip

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

SQL count() 与 group by 不返回 0/零记录

为了便于讨论,请考虑 Access 中的这个基本表(测试)...

ID  division  name   role
1    1        Frank  100
2    2        David  101
3    3        John   101
4    2        Mike   102
5    2        Rob    102
7    3        Dave   102
8    3        Greg   102
Run Code Online (Sandbox Code Playgroud)

我想统计一个部门中某个角色的用户。如果我执行一个简单的 count(),我会返回正确的 0:

SELECT COUNT(ID) as ct 
FROM Test 
WHERE role >=101 and division=1;
Run Code Online (Sandbox Code Playgroud)

产量

division   ct
    1       0
Run Code Online (Sandbox Code Playgroud)

但是,我想在结果中包含除法编号(为了进一步加入、报告等),并且它总是返回空/无行,而不是除法和计数 0:

SELECT division, COUNT(ID) as ct 
FROM Test WHERE role >=101 
GROUP BY division 
HAVING division=1;
Run Code Online (Sandbox Code Playgroud)

或者

SELECT division, COUNT(ID) as ct 
FROM Test 
WHERE …
Run Code Online (Sandbox Code Playgroud)

sql ms-access count

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

我可以在方法调用中强制自己的短路吗?

假设我想检查一堆对象以确保none为null:

if (obj != null &&
    obj.Parameters != null &&
    obj.Parameters.UserSettings != null) {

    // do something with obj.Parameters.UserSettings
}
Run Code Online (Sandbox Code Playgroud)

编写一个辅助函数来接受可变数量的参数并简化这种检查是一个诱人的前景:

static bool NoNulls(params object[] objects) {
    for (int i = 0; i < objects.Length; i++)
        if (objects[i] == null) return false;

    return true;
}
Run Code Online (Sandbox Code Playgroud)

然后上面的代码可能变成:

if (NoNulls(obj, obj.Parameters, obj.Parameters.UserSettings)) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

对?错误.如果obj是空的话,我会得到一个NullReferenceException,当我试图通过obj.ParametersNoNulls.

所以上述方法显然是错误的.但是if使用&&运算符的声明工作得很好,因为它是短路的.那么:有没有办法让方法短路,以便在方法中明确引用之前不会对其参数进行求值?

.net c# short-circuiting

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