问题列表 - 第32585页

返回一个新的Object vs修改作为参数传入的对象

我在代码审查期间遇到了以下代码.

我的直觉告诉我,这不遵循适当的OOP.

我认为相反,LoadObject方法应返回一个新的SomeObject对象,而不是修改传递给它的那个对象.虽然我无法真正找到解释为何更好的原因.

我的解决方案更好吗?如果是这样,为什么?特别是在给定的代码示例(如果有的话)中打破了OOP原则或标准?

   public void someMethod()
    {
        ...
        var someObject = new SomeObject();
        LoadSomeObject(reader,someObject);
    }

    private void LoadSomeObject(SqlDataReader reader, SomeObject someObject)
    {
       someObject.Id = reader.GetGuid(0);
    }
Run Code Online (Sandbox Code Playgroud)

c# java oop design-principles

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

为什么表级锁定比大型表的行级锁定更好?

根据MySQL手册:

对于大型表,表锁定通常比行锁定更好,

Why is this? I would presume that row-level locking is better because when you lock on a larger table, you're locking more data.

mysql locking table-locking

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

Showing no results message on jquery autocomplete

I'm using the jQuery autocomplete plugin, NOT the UI autocomplete. I would like to make an unclickable No Results message appear whenever they enter something that has no results from the autocomplete. How can I do that?

jquery autocomplete

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

Export Javascript Console log from Google Chrome

有没有办法导出记录到谷歌浏览器的javascript控制台的消息?

如果没有,有人能建议一个很好的方法来诊断客户端机器上的JavaScript问题吗?尽管建立了相同的环境,但我无法在本地复制问题.

javascript debugging google-chrome

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

时间,空间复杂度和O符号问题

可能重复:
Big O的简单英文解释

我找不到足够的帮助来学习或理解O符号,以及如何了解时间或空间的复杂性.所以请建议我,我在哪里可以开始这个.它真的需要我,现在这些时间.所以请快速给我解决方案.非常感谢提前.

algorithm big-o

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

Lazy <T>实现和.NET泛型

我一直在寻找懒惰初始化的方法,并找到Lazy<T>了.NET 4中包含的内容.

我正在考虑推出自己的Lazy<T>.NET 3.5实现(使用更简单的多线程策略),我遇到了以下问题:

Lazy基本上有两种类型的构造函数:

class Lazy<T> {

    public Lazy(){...} // ctor #1
Run Code Online (Sandbox Code Playgroud)

它使用T的默认构造函数来创建T的实例,和

    public Lazy(Func<T> func){...} // ctor #2
Run Code Online (Sandbox Code Playgroud)

这让调用者决定如何创建T的实例.

现在问题在于:

如果我想要第一个ctor的编译时检查,我将添加一个限制

class Lazy<T> where T: new() {...}
Run Code Online (Sandbox Code Playgroud)

在班级.这将允许我new T()用来创建一个实例; 但是这个限制对于第二个ctor来说不是必需的,更糟糕​​的是,它也限制了我可以使用的类型(对于那些有默认ctor的人)

如果我想能够使用任何类型与第二个ctor,我将不会设置任何限制,并在第一个ctor将使用反射,以确保T有默认的ctor.但是,这种方法缺少编译时检查,如果第一个ctor使用了错误的类型,则只会抛出运行时异常.

我的问题是:我可以充分利用这两个世界吗?

理想情况下,我想对ctor#1的每次使用进行编译时检查,但同时能够将ctor#2用于没有默认ctor的类型.

Microsoft实现如何做到这一点?(我不能轻易访问.NET 4源代码或dll).

编辑:(在"反射器"之后的MS组件)

我检查了参考实现,它没有进行编译时检查.
它使用反射作为'默认ctor'的情况,当然如果事情变坏则伴随着运行时异常.

.net c# generics reflection lazy-loading

15
推荐指数
2
解决办法
3674
查看次数

在Motorola Droid上调试本机代码

我正在尝试使用Motorola Droid上的NDK调试应用程序构建.我按照这里的说明进行操作,过去我在模拟器上取得了成功(显然我有root访问权限)但是当我尝试启动时

gdbserver :5039 --attach 1082
Run Code Online (Sandbox Code Playgroud)

通过adb shell,我得到了一个gdbserver:permission denied.显然,因为这是一个股票Droid,我没有root访问权限.这有必要吗?我只是错过了一些东西吗?

提前致谢!

Edit I have confirmed that this command works on the emulator. Can this be done on a nonrooted device?

Edit 2 I have also confirmed the same Permission Denied errors on an EVO 4G.

Edit 3 I have also discovered that a production device (eg. EVO 4G or Droid) will not give me a "not found" error. For instance, when I typed something random like ljs …

debugging gdb android-ndk

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

twisted:如何在reactor代码和线程代码之间优雅地进行通信?

我有一个客户端使用twisted连接到服务器.客户端有一个可能在后台执行操作的线程.当反应堆关闭时,我必须:

1) check if the thread is doing things
2) stop it if it is
Run Code Online (Sandbox Code Playgroud)

这是一种优雅的方式吗?我能做的最好的事情是:

def cleanup(self):
    isWorkingDF = defer.Deferred()
    doneDF = defer.Deferred()

    def checkIsWorking():
        res = self.stuff.isWorking() #blocking call
        reactor.callFromThread(isWorkingDF.callback, res)

    def shutdownOrNot(isWorking):
        if isWorking:
            #shutdown necessary, shutdown is also a blocking call
            def shutdown():
                self.stuff.shutdown()
                reactor.callFromThread(doneDF, None)
            reactor.callInThread(shutdown)                
        else:
            doneDF.callback(None) #no shutdown needed

    isWorkingDF.addCallback(shutdownOrNot)

    reactor.callInThread(checkIsWorking)

    return doneDF
Run Code Online (Sandbox Code Playgroud)

首先,我们检查它是否正常工作.该回调的结果rescallback是关闭或不关闭,然后触发doneDF,扭曲等待直到关闭.

相当混乱呃!有没有更好的办法?

也许一个相关的问题是,是否有更优雅的方式将回调链接到彼此?在完成后我可以看到自己需要做更多的清理代码,所以我必须做出一个不同的done延迟,并且当前doneDF激活一个回调,然后执行调用done延迟的调用.

python multithreading shutdown twisted

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

从Haskell中的元组列表中选择数据

:: [((a, b), (a, b), (a, b))]在Haskell中有一个类型元组的元组列表.

对于某些上下文,3个点(a, b)表示具有第一个点的U形曲线上的(时间,值)对,在初始时间t1在曲线x1上具有最大值,第三个点具有更大的时间t3 = t1 + dt和值x3

我想[((t1, x1), (t2, x2), (t3, x3))]通过获取最大值的元组找到列表中最宽U的范围t3 - t1,然后返回值x2 - x1.

我能想到的唯一方法是先将列表中的每个元组映射到t3 - t1,找到它的索引,然后在原始列表中计算该索引的x2 - x1.有没有更优雅的方式来做到这一点?

findMaxTime :: [((a, b), (a, b), (a, b))] -> Int
findMaxTime list = elemIndex (==min) $ map (\(x, y, z) -> fst z - fst x)
                       where min = minimum $ map (\(x, y, z) -> fst z - fst …
Run Code Online (Sandbox Code Playgroud)

haskell tuples list

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

Python和mySQLdb错误:OperationalError:(1054,"where子句'中的未知列")

嘿所有,我收到了一个错误

OperationalError:(1054,"where子句'中的未知列'XX'")

其中XX是以下代码中CLASS的值

conn = MySQLdb.connect(host = "localhost",user = "user", passwd = "pass",db = "dbase")
cursor = conn.cursor()
cursor.execute("""SELECT * FROM %s WHERE course =%s AND sec = %s""" % (str(DEPT),str(CLASS),str(SEC),))
Run Code Online (Sandbox Code Playgroud)

问题是,我只用某些值得到这个错误,即当CLASS包含一个字母时.如果有帮助,我将表设置为varchar

谢谢!

python mysql mysql-error-1054

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