问题列表 - 第45257页

mysql - 我如何获得一个以字母开头的列表并继续下一个字母?

SELECT contact_id, last_name FROM contacts
WHERE last_name like 'B%' ORDER BY last_name limit 0, 250
Run Code Online (Sandbox Code Playgroud)

只返回B的.

我需要的是从第一个B开始返回250行.如果少于250个B,那么我需要获得以下C,D等.

mysql

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

我们如何在Javascript游戏中实现人工智能?

我正在使用html5/JavaScript进行双人棋盘游戏.这两个播放器版本差不多完整了.我想添加单人模式,计算机将成为对手.这个游戏将在单一浏览器中播放(没有服务器端集成).

我是AI的新手.我想要一些关于JavaScript游戏中AI实现的指南,我应该从哪里开始?

请帮忙.

编辑: 游戏是Bagh-Chal

谢谢你的回答:我已经设法在巴格哈游戏中实现Minimax.在这里.

javascript algorithm artificial-intelligence heuristics

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

C#null coalescing运算符返回null

最近,我的同事向我展示了一段无法正常工作的代码:

public class SomeClass
{
    private IList<Category> _categories;

    public void SetCategories()
    {
        _categories = GetCategories() ?? new List<Category>();
        DoSomethingElse();
    }

    public IList<Category> GetCategories()
    {
        return RetrieveCategories().Select(Something).ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

(我知道运算符是多余的,因为linq ToList将始终返回一个列表,但这就是代码的设置方式).

问题是_categories为null.在调试器中,设置断点_categories = GetCategories() ?? new List<Category>(),然后单步执行DoSomethingElse(),_ categories仍然为null.

直接将_categories设置为GetCategories()工作正常.拆分?在一个完整的if语句工作正常.空合并运算符没有.

它是一个ASP.NET应用程序,所以一个不同的线程可能会干扰,但它在他的机器上,只有他在浏览器中连接._cateogories不是静态的,或任何东西.

我想知道的是,这怎么可能发生?

编辑:

只是为了增加奇异性,除了初始化类_categories之外,永远不会设置除该功能之外的任何地方.

确切的代码是这样的:

public class CategoryListControl
{
    private ICategoryRepository _repo;
    private IList<Category> _categories;

    public override string Render(/* args */)
    {
        _repo = ServiceLocator.Get<ICategoryRepository>();
        Category category = _repo.FindByUrl(url);
        _categories = _repo.GetChildren(category) …
Run Code Online (Sandbox Code Playgroud)

.net c#

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

在抽象基类中重载运算符的正确方法是什么?

假设我有一个抽象基类,它只定义了一个可以在其上执行添加的容器:

class Base {
public:
    virtual ~Base() {}
    virtual Base operator+(const Base& rhs) =0;
};
Run Code Online (Sandbox Code Playgroud)

然后我想要Base的子类来提供实际的操作:

class Derived: public Base {
public:
    Base operator+(const Base& rhs) { // won't compile
        // actual implementation
    }
};
Run Code Online (Sandbox Code Playgroud)

这是我的问题:operator +()应该返回一个新的Base对象,但Base是抽象的,它不会编译.

我试图通过使用工厂返回对Base对象的引用来解决这个问题,但是在运算符的主体中我发现自己正在进行转换,因为加法仅对Derived对象有意义.

在任何情况下,感觉我咬自己的尾巴,有一个适当的解决方案吗?

更新:基于到目前为止的答案,似乎我使用了错误的模式.我想将接口与实现分开,因此库代码只需要知道接口和客户端代码提供的实现.我尝试通过将接口作为抽象基类提供,并将实现作为子类来实现.

更新2:我的问题实际上是2个问题,一个具体问题(关于在抽象类中重载运算符)和另一个关于我的意图(如何允许客户端自定义实现).前者已被回答:不要.对于后者,似乎我使用的接口类模式实际上是解决该问题的好方法(根据Griffiths和Radford),这只是我不应该混淆重载运算符.

c++ polymorphism abstract-class operator-overloading

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

将 onclick 事件添加到动态创建的链接按钮

我想要完成的是使用 onClick 命令设置动态创建的链接按钮,以便在单击时它将运行后面代码中的方法。这是我的代码:

protected void Page_Init(object sender, EventArgs e)
{
    LoadLeftSide();
}

private void LoadLeftSide()
{
    string filepath = Server.MapPath("DataSource.xml");
    List<Post> list = PostHelper.GetAllPosts(filepath);
    HtmlTable table = FindControl("tbl") as HtmlTable;

    HtmlTableRow hearderrow = new HtmlTableRow();
    HtmlTableCell heardercell = new HtmlTableCell();     

    heardercell.InnerText = "Posts:";       
    hearderrow.Cells.Add(heardercell);
    table.Rows.Add(hearderrow);

    foreach (Post p in list)
    {
        HtmlTableRow row = new HtmlTableRow();
        HtmlTableCell cell1 = new HtmlTableCell();

        LinkButton lnkPost = new LinkButton();
        lnkPost.ID =string.Format("{0}" ,Guid.NewGuid());
        lnkPost.Attributes.Add("runat", "server");
        lnkPost.Text = p.Title;
       // lnkPost.CommandName = p.Id.ToString();
       // lnkPost.CommandArgument …
Run Code Online (Sandbox Code Playgroud)

c# asp.net

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

WCF,NHibernate和Ninject的每个请求的会话实现

我正在尝试在我的WCF应用程序中实现一个每请求会话模型,并且我已经阅读了关于这个主题的无数文档,但看起来还没有完整的演示.我实际上遇到过一些非常有用的文章,例如:

NHibernate的ISession,用于单个WCF调用

但是这些都来自NHibernate和Ninject没有WCF特定实现的旧时代,因此他们通过实现他们的自定义服务提供程序等来实现我所需要的.因为Ninject和NHibernate现在都支持WCF,所以我希望保持一致通过使用他们的模块,但我最终在这里......

基本设置和流程应该是这样的:

  1. 在nhibernate配置中将CurrentSessionContext设置为WcfOperationSessionContext
  2. 在服务启动,开始请求或初始化时间的任何地方,打开会话并将其绑定到当前上下文
  3. 存储库使用SessionFactory.GetCurrentSession()方法获取当前会话实例
  4. 在生命周期结束时取消绑定并关闭会话

我最初的问题是我无法访问wcf生命周期来处理我的绑定.在深入挖掘ninject代码之后,我设法将我的方法挂钩到ServiceHost的Opening/Closing事件而没有太大变化,但后来我无法访问OperationContext,因为它是线程静态的.

后来我尝试启用asp.net兼容性并使用Application_BeginRequest和Application_EndRequest,它看起来非常有前景,但我不认为这是最好的解决方案,因为我应该将东西绑定到服务实例,而不是http请求.

有没有人使用ninject的内置wcf扩展库实现这一目标?或者我可能做错什么的任何想法?

nhibernate wcf ninject session-per-request

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

我应该保持文件打开还是应该经常打开和关闭?

在这种情况下,习惯上只打开一次文件吗?

#!/usr/bin/env perl
use warnings;
use 5.012;
use autodie;

my $file = 'my_file';

open my $fh, '>>', $file;
say $fh "Begin";
close $fh;

$SIG{INT} = sub { 
    open my $fh, '>>', $file; 
    say $fh "End";
    close $fh;
    exit 
};

my $result;
while ( 1 ) {
    $result++;
    # ...
    # ...
    # ...
    open my $fh, '>>', $file; 
    say $fh $result;
    close $fh;
    sleep 3;
}
Run Code Online (Sandbox Code Playgroud)

perl file

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

为每个运行的线程转储StackTrace

.NET(VB.NET或C#)是否有一种方法,当发生异常时,转储每个线程的堆栈跟踪?基本上我想重现Visual Studio的Debug-> Threads窗口中发生的事情,看看发生异常时每个线程正在做什么

.net c# vb.net

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

在URL和.htaccess中使用空格

我为我的城市写了一个本地名称/电话/地址搜索引擎.

用户必须能够通过访问以下任一URL快速访问结果:

  1. 按号码搜索
  2. 按姓氏搜索
  3. 按姓氏和名字搜索

这是我目前的.htaccess配置:

# Smart links
RewriteRule ^([0-9]+)$ /html/index.php?phone=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)$ /html/index.php?lastname=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)/([A-Za-z-]+)$ /html/index.php?lastname=$1&name=$2 [QSA,L]
Run Code Online (Sandbox Code Playgroud)

这非常有效,除非用户在姓氏和/或名字中包含空格.此外,搜索名称时不能使用任何数字.

关于如何在网址中留出空格的任何想法?谢谢!

.htaccess url-rewriting

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

贪心算法的用法示例?

贪心算法有什么用?一个真实的例子?

algorithm greedy

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