问题列表 - 第16364页

薪资计算模式

我想开发一个类似于薪水计算的系统.薪水有基本价值.最重要的是,员工可以获得一些奖金或惩罚.装饰模式似乎适合这种情况

Salary finalSalary = new HardworkBonus(new LateComingPenalty(new BasicSalary()))
System.out.println("Your total salary is : "+ finalSalary.calculate())
Run Code Online (Sandbox Code Playgroud)

另外,我想保存每个计算的结果.所以最后,即使经过计算,我也可以检索LateComingPenalty的数量.

这似乎是一个常见的问题,涉及这种发票计算.可能有一些比装饰模式更好的选择.你有更好的建议吗?

java design-patterns

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

Qt有C接口吗?

我在网上发现了相互矛盾的答案 - 有人说它确实存在,有些人说没有.我也无法在官方Qt文档中找到任何细节.Qt也有C绑定吗?

c qt

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

如何使用Perl中的布局引擎创建网页缩略图?

是否有针对Perl的Gecko或WebKit等布局引擎的绑定?我在CPAN上找到了Gtk2-Webkit,但我想知道是否还有其他选择.

我的想法是使用其中一个引擎从Perl脚本创建网页缩略图.

perl gecko webkit

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

正则表达式检查上一行

使用正则表达式(在c#.net中)是否可以检查字符串的上一行?

举例来说,我需要选择字符串中前行不是一系列星号(前行:******)

.net c# regex

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

不可变对象总是线程安全吗?

可以安全地假设使用或传递不可变对象总是线程安全的吗?

c# immutability thread-safety

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

如果Nothing类型位于类层次结构的底部,为什么我不能在其上调用任何可想到的方法?

scala类型Nothing表示(据我所知)类型层次结构的底部,也用符号denoted表示.也就是说,Nothing是任何给定类型的子类型.James Iry对我们这些没有理论背景理论背景的人解释了对Nothing类型的要求!

所以我的问题是,如果Nothing是每种类型的子类型,为什么我不能调用任何类型的方法Nothing?显然,我无法实例化Nothing但为什么不进行以下编译?

var n: Nothing = _

def main(args: Array[String]) {
  println(n.length) //compile error: value length is not a member of Nothing
}
Run Code Online (Sandbox Code Playgroud)

当然,Nothing这个子类型String应该可以吗?请注意,以下编译就好了!

var n: Nothing = _

def foo(s: String) : Int =  s.length

def main(args: Array[String]) {
  println(foo(n))
}
Run Code Online (Sandbox Code Playgroud)

同样如下:

def main(args: Array[String]) {
  println(n.asInstanceOf[String].length) 
}
Run Code Online (Sandbox Code Playgroud)

types scala nothing

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

在XML中使用CDATA元素是否容易受到攻击?

在XML文档中使用CDATA元素是否易受攻击?如果是这样,如果我们在XML文档中使用CDATA元素会发生什么?

xml cdata

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

调试错误"类型'xx'在未引用的程序集中定义"

完整错误如下:

类型'System.Windows.Forms.Control'在未引用的程序集中定义.您必须添加对程序集'System.Windows.Forms,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用.

它指向库项目中第一个类中的第一个语句(Debug.Assert行),它不需要System.Windows.Forms(或者我认为).我知道如何解决它:添加提到的参考.但是,我如何找出导致此错误的库,或者更好的是,使用WinForms库触发了哪些代码?

通常,您可以添加引用其他库的库,但只需在实际使用时添加对其他库的引用.


编辑:替代解决方案

使用Microsoft框架工具中的绑定日志查看器Fuslogvw.exe也可以解决此问题或类似问题.它显示了应用程序绑定的程序集的所有尝试和成功.

c# debugging assembly-resolution visual-studio-2008

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

在setTimeout上更改匿名函数的范围会导致奇怪的警告

这让我感兴趣的纯粹是研究和个人发展.我有一组命名空间的函数/变量.

在1个函数中我需要通过setTimeout调用另一个函数但是将范围保持为'this'.我正在努力解决这个问题,似乎无法在setTimeout运行时绑定它.

var foo = {
    ads: ["foo","bar"],
    timeDelay: 3,
    loadAds: function() {
        var al = this.ads.length;
            if (!al)
                return; // no ads

            for(var i = 0; i < al; i++) {
                setTimeout(function() {
                    this.scrollAd(this.ads[i]);
                }.apply(this), this.timeDelay * 1000);
            }
        },
        scrollAd: function(adBlock) {
            console.log(adBlock);

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

.apply(this)DOES更改范围,因为console.log输出正确的对象,但它会立即运行该函数,然后在回调保持为空时出现异常/警告:

useless setTimeout call (missing quotes around argument?)
Run Code Online (Sandbox Code Playgroud)

这样做有一种优雅的方式吗?我知道我能做到

var _this = this;
Run Code Online (Sandbox Code Playgroud)

_this在anon回调中引用.例如,在mootools我会用.bind(this)...

不,因为这涉及动画,我不想" "在字符串周围使用,因为它需要进行评估并会影响性能......

javascript scope

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

使用Enterprise Library 4.1从多个进程记录到同一文件

我有几个并发运行的进程,我想要登录到同一个文件.

我们一直在使用Enterprise Library 4.1 Logging Application Block(带有a RollingFlatFileTraceListener),它工作正常,除了它在两个进程同时尝试写入日志文件时为日志文件名添加GUID这一事实(a System.Diagnostics.TextWriterTraceListener我相信的怪癖).

我尝试了各种各样的事情,包括Logger.Writer.Dispose()写入日志文件后调用,但每次写入日志条目时都不适合进行阻塞调用.

EntLib论坛建议将MSMQ与分销商服务一起使用,但这不是一个选项,因为我的公司不允许使用MSMQ.

有没有其他方法可以快速轻松地从多个线程/进程登录到同一个文件?

c# logging multithreading enterprise-library

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