问题列表 - 第6774页

在运行时更改对象的行为

如何在运行时更改对象的行为?(使用C++)

我将举一个简单的例子.我有一个Operator包含方法的类operate.我们假设它看起来像这样:

double operate(double a, double b){
  return 0.0;
}
Run Code Online (Sandbox Code Playgroud)

用户将给予一定的输入值ab,而会选择执行什么操作让我们说,他可以选择计算加法或乘法.鉴于它的输入,我被允许做的只是实例化Operator和调用operate(a, b),这正是我之前提到的.

计算乘法或加法的方法将在某处实现(不知道在哪里).

总之,我必须根据用户的输入更改Operator对象的行为.

c++

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

C#中的标准代表

在C#中有一些预定义的委托

我知道这些:

EventHandler // Default event callbacks
EventHandler<T> // Default event callbacks with custom parameter (inheriting from EventArgs)
Action // Function without return value and without parameter
Action<T1, T2, T3, T4> // Function without return value and 1-4 parameters
Func<T1, T2, T3, T4, TResult> // Methos with 0-4 parameters and one result type
Predicate<T> // equivalent to Func<T, bool>
Run Code Online (Sandbox Code Playgroud)

对于特殊情况和框架的生成表单部分还有更多,但这些通常很适合在自编代码中使用.

如果你知道一些更有用的添加它们.否则就回答了.

c# delegates list

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

setTimeout还是setInterval?

据我所知,这两个javascript的行为方式相同:

选项A:

function myTimeoutFunction()
{
    doStuff();
    setTimeout(myTimeoutFunction, 1000);
}

myTimeoutFunction();
Run Code Online (Sandbox Code Playgroud)

选项B:

function myTimeoutFunction()
{
    doStuff();
}

myTimeoutFunction();
setInterval(myTimeoutFunction, 1000);
Run Code Online (Sandbox Code Playgroud)

使用setTimeoutsetInterval有什么区别吗?

javascript setinterval

738
推荐指数
12
解决办法
37万
查看次数

禁止在其包外部直接扩展Java类

我有一个包

public abstract class Player { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

还有这些

public abstract class GamePlayer extends Player { /*...*/ }
public abstract class TournamentPlayer extends Player { /*...*/ }
public abstract class StatelessPlayer extends Player { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

该软件包的用户需要玩家,但为了在不破坏它的情况下使用该软件包,我要求他们永远不要直接扩展播放器.相反,他们应该扩展提供的子类之一.

问题:我应该如何阻止用户直接扩展播放器?

我正在寻找一种能明显禁止这种禁令的方法.

java inheritance api-design

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

ClickOnce和UserSettings

好的,我有一个我正在测试的ClickOnce应用程序,我在第一次使用加载应用程序时向用户询问了几条信息; 客户ID和名称.然后我设置属性,以便它们可以跨会话保存.属性为Properties.Settings.Default ["Customer ID"],名称类似.

所以我通过控制面板卸载应用程序并重新安装应用程序,但设置仍然存在!我去找我的应用程序的所有目录并删除设置,但应用程序就像它仍然有它们.我甚至可以通过调试器看到它​​们仍在那里.

我如何摆脱它们?这非常令人沮丧,因为它几乎不可能测试新数据并调试任何首次安装.

谢谢...

deployment settings clickonce

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

Java类型无法解析

我有一个声明

String pass = com.liferay.portal.util.PortalUtil.getUserPassword(renderRequest);
Run Code Online (Sandbox Code Playgroud)

这导致eclipse IDE中出现以下错误:

无法解析javax.servlet.http.HttpSession类型.它是从所需的.class文件间接引用的

为什么会出现这个错误?我已为该类型添加了一个import语句,但错误仍然存​​在.如何删除此错误?

谢谢你的帮助.

java

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

在SCM中正确使用标签

我的同事和我正在讨论发布/ SCM系统中标签的价值和用法.我们期待StackOverflow社区提出他们的想法,以帮助我们解决问题.

一方声称标签是发布管理的有价值的补充.它们的一个使用示例:我们做了一个Maven版本,它发布了一个新的Tag(称之为1.0),这是用于此版本的代码快照.此标记应为READONLY分支.当需要修复bug时,我们可以将Tag的副本复制到一个新的分支中(称之为1.1).错误修复去那里.这些修复程序可能会合并回Trunk,以便主dev分支获取错误修复程序.最后,1.1发布并自动创建Tag 1.1.这个循环继续.Tag的主要好处是,如果您因任何原因需要重新发布版本1.0,您可以放心发布Tag 1.0,并确信它从未被任何人更改过.另外,说"Release Tag 1.0"比说"发布版本1的分支1.0是没有修复的原始1.0"更清晰.

另一方声称标签没有提供任何有价值的好处,特别是在像Subversion这样具有全局修订的系统中,这些系统就像CVS中的标签一样.另外,Subversion仅在提交标签时发出警告; 它实际上并没有阻止它.他们的方法是在Trunk中开发,一旦发布,你就会创建一个名为1.0的Branch.您将继续在Trunk中修复错误,如果您需要将这些错误修复重新发布到生产中,您可以将它们合并到1.0 Branch并重新发布1.0.在某些时候,也许在Trunk中的主要修复或功能之后,您将发布并创建Branch 1.1.循环继续.如果您需要发布原始1.0版本,则必须查看Branch 1.0版本1.

显然这两种方法都有效.我想听听社区对哪种方法首选以及为什么这样做的想法.

编辑:我有点担心"最佳"方式取决于底层的SCM系统.要么在Subversion上找到答案,要么尽可能保持SCM不可知.

version-control release-management

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

哪个主要操作系统最适合快速启动和启动Java应用程序?

我创建了一个Java应用程序,它是工作站上唯一活动的应用程序.(类似于自助服务终端系统)

问题是应用程序必须在启动计算机后尽快启动并运行.

我想知道哪个主要操作系统可以配置为提供最短的启动时间?

我正在使用第三方音频和图形库,所以我的选择仅限于Windows XP/Vista,Linux和Solaris.

目前在我的双启动机器上,Fedora需要比Vista更长的时间,但另一方面,我没有太多调整Linux启动时间的经验.因此,如果有人知道Linux可以有更好的快速启动机会,那么我会把时间花在那里.

我还要了解有关调整启动时间和Java启动时间的一般提示.

java linux windows operating-system solaris

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

Crystal Reports中有多个组

如何在Crystal Reports中使用多个组(未嵌套)?

我想做的一个小例子:

-hire car header
--rentals header (group)
---rental from 01-02-2008 to 01-06-2008
---rental from 01-08-2008 to 01-09-2008
---rental from 01-12-2008 to 01-15-2008
--rentals footer
--repairs header (group)
---repair from 02-02-2008 to 02-05-2009
--repairs footer
-hire car footer

hire car是正常报告,rentals并且repairs是组.这些组不是嵌套的.我目前的问题是我无法真正创建类似的东西,我无法改变结构来解决这个问题......

我对水晶报道完全不熟悉.

crystal-reports

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

对于每个循环迭代

让我们假设我用来迭代节点列表的代码

foreach(XmlNode nodeP in node.SelectNodes("Property"))
{
  propsList.Add(nodeP.Attributes["name"].Value, true);
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,表达式node.SelectNodes("Property")是否在每次迭代期间为每个或一次进行评估?

c# enumeration

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