问题列表 - 第8188页

如何影响Ruby代码的加载顺序?

假设您的同事monkeypat修复Fixnum类并重新定义+方法以减去而不是添加:

class Fixnum
  def +(x)
    self - x
  end
end

>> 5 + 3
=> 2
Run Code Online (Sandbox Code Playgroud)

您的问题是您想要访问+方法的原始功能.因此,您将此代码放入相同的源文件之前.它在将 monkeypatches 之前将+方法别名为"original_plus" .

class Fixnum
  alias_method :original_plus, :+
end

class Fixnum
  def +(x)
    self - x
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过original_plus访问+方法的原始功能

>> 5 + 3
=> 2
>> 5.original_plus(3)
=> 8
Run Code Online (Sandbox Code Playgroud)

但我需要知道的是:

有没有其他方法加载这个别名BEFORE他的monkeypatch加载除了将其粘贴到他修改的相同源文件中?

我的问题有两个原因:

  1. 我可能不希望他知道我已经这样做了
  2. 如果源文件被更改以使别名最终低于monkeypatch,则别名将不再产生所需的结果.

ruby monkeypatching

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

多次重复mstest测试运行

我的一些mstest单元测试有助于检测多线程竞争条件,因此它们在连续多次运行时最有用,但我只想在特定的测试运行中执行此操作 - 而不是所有时间.

有没有办法配置mstest(最好在测试列表编辑器中)多次运行测试?

.net mstest

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

基于策略的设计和最佳实践 - C++

struct InkPen
{
  void Write()
  {
    this->WriteImplementation();
  }

  void WriteImplementation()
  {
    std::cout << "Writing using a inkpen" << std::endl;
  }

};

struct BoldPen
{
  void Write()
  {
    std::cout << "Writing using a boldpen" << std::endl;
  }
};

template<class PenType>
class Writer : public PenType
{
public:
  void StartWriting()
  {
    PenType::Write();
  }
};

int main()
{
  Writer<InkPen> writer;
  writer.StartWriting();
  Writer<BoldPen> writer1;
  writer1.StartWriting();
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我将上述代码编写为学习基于策略的设计的一部分.我对上面的代码几乎没有疑问

1 - 此实现看起来是否正确?我的意思是:它真的看起来像一个基于政策的设计吗?

2 - 我现在可以将任何类型的笔钩到作家身上.但是当我拿到没有默认构造函数的笔(仅参数化构造函数)时,我会怎么做?我该如何处理这种情况?

template<class PenType>
class Writer : public PenType …
Run Code Online (Sandbox Code Playgroud)

c++ design-patterns policy-injection policy-based-design

26
推荐指数
4
解决办法
3万
查看次数

.net 3.5客户端配置文件.完全没用?我错过了什么吗?

我目前正在为未来的项目评估.net客户端配置文件,我发现有一些事情我觉得它很无用,除非我当然缺少一些东西.

我已经在干净的xp vm上安装了客户端配置文件.当我开发一个小型测试winform应用程序(使用针对.net 3.5客户端配置文件的编译)并将其复制到虚拟机时,我无法运行它.错误消息是我需要.net 3.5 sp1或更高版本.我猜问题是sp1,是否有客户端配置文件sp1?我找不到.

然后我打开Windows更新以获取SP1.这是对sp1的70MB更新,完全忽略了"小".net客户端框架的重点.在此之后,应用程序确实有效.

另一件事,客户端配置文件是在线安装程序.离线安装程序是255MB?那么与完整的.net框架相比,功能和aprox的大小相同吗?

另一件事,如果您安装了任何以前版本的.net(这并非完全闻所未闻,vista和2003甚至包括它),客户端配置文件根本不会安装.升级2.0到3.5 sp1比客户端配置文件(28mb)大很多,所以如果可行的话,这将是有用的.

所以,我错了吗?如果我不是,有没有人真正发现客户端配置文件有用?

.net client .net-3.5

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

WH_MOUSE和WH_MOUSE_LL钩子之间有什么区别?

我发现WH_MOUSE并不总是这样.问题可能是我正在使用WH_MOUSE而不是WH_MOUSE_LL吗?

代码:

class MouseHook
{
public:
  static signal<void(UINT, const MOUSEHOOKSTRUCT&)> clickEvent;

  static bool install() 
  {
    if (isInstalled()) return true;
    hook = ::SetWindowsHookEx(WH_MOUSE, (HOOKPROC)&mouseProc,  
                                ::GetModuleHandle(NULL), NULL);
    return(hook != NULL);
  }

  static bool uninstall() 
  {
    if (hook == NULL) return TRUE;
    bool fOk = ::UnhookWindowsHookEx(hook);
    hook = NULL;
    return fOk != FALSE;
  }

  static bool isInstalled() { return hook != NULL; }

private:
   static LRESULT CALLBACK mouseProc(int nCode, WPARAM wParam, LPARAM lParam)
   {            
      if (nCode == …
Run Code Online (Sandbox Code Playgroud)

c++ hook winapi

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

mod_php vs mod_python

为什么mod_python是oop而mod_php不是?

示例:我们访问www.example.com/dir1/dir2

如果你使用mod_python apache打开www/dir1.py并调用dir2方法但是如果你使用php模块apache打开www/dir1/dir2/index.php

php python mod-python

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

LINQ性能 - 延迟v/s立即执行

我已经看到,如果LINQ to Objects查询被强制立即执行使用.ToArray(),但有时不能理解为什么,则可以显着提高它们的性能.例如,在下面的示例中,函数的执行Deferred()比函数慢得多Immediate(),并且随着值的增加呈指数级增长limit(也许它在两个函数中都是指数函数,但是执行时间Immediate()太短,我无法明确地说).

public void Deferred()
{
    var all = Range(limit);
    var even = from e in EvenRange(limit) where all.Contains(e) select e;
    var odd = from o in OddRange(limit) where !even.Contains(o) select o;

    var query = from q in odd select q;

    foreach(var i in query) { var j = i+1; }
}

public void Immediate()
{
    var all = Range(limit);
    var even = (from e in EvenRange(limit) where all.Contains(e) …
Run Code Online (Sandbox Code Playgroud)

.net linq performance

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

Ruby中未初始化的常量MyClass(NameError)

我有一个模块Shish(它的作用类似于一个抽象类)和一个访问者类Only_Onions.

我想在模块Shish中实例化Only_Onions,这样所有扩展Shish的类都可以使用该对象来判断它们是否只有_onion.

module Shish
    only_onions_class = Only_Onions.new
end

class Only_Onions
    def for_skewer
        return true
    end
end


class Skewer
    include Shish

    def only_onions
        return only_onions_class.for_skewer
    end

    def veg?
        return true
    end
end
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误"未初始化的常量Shish :: Only_Onions(NameError).这是什么意思?

ruby

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

SQL Server锁升级问题

我正在阅读关于SQL Server锁升级的MSDN页面的SQL Server锁升级

我的问题是,似乎存在锁升级的主要原因是为了减少维护更多锁的开销(例如,当为表获取更多行锁时,行级锁被升级到表级).我的问题是,维护更多的锁会提高并发性,这是一个好处,为什么它是一个开销?根据我的拙见,锁定应该尽可能小,以通过提高并发性来提高数据库性能.任何人都可以用简单的方式解释为什么需要锁定升级以及所谓的锁定开销是什么?

乔治,提前谢谢

sql-server locking escalation

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

xmlns:SOAP元素的soap属性

我刚刚开始学习Web服务.我无法理解使用xmlns:SOAP元素的soap属性.谢谢.

xml soap web-services

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