小编Voj*_*vic的帖子

匿名IComparer实现

是否可以定义IComparer的匿名实现?

我相信Java允许内联定义匿名类 - C#?

看看这段代码我想定义一个自定义IComparer内联

public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(
    this IEnumerable<TSource> source,
    Func<TSource, TKey> keySelector,
    IComparer<TKey> comparer
)
Run Code Online (Sandbox Code Playgroud)

c#

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

Qt中的文件夹浏览器对话框

有没有办法在Qt中打开文件夹浏览器对话框?当我使用QFileDialogDirectory文件模式,即使我指定的ShowDirsOnly选项,我得到的标准文件对话框.我更喜欢使用一个对话框,要求用户从目录树中选择一个目录.

这是我正在使用的PySide代码:

from PySide import QtGui
app = QtGui.QApplication([])
dialog = QtGui.QFileDialog()
dialog.setFileMode(QtGui.QFileDialog.Directory)
dialog.setOption(QtGui.QFileDialog.ShowDirsOnly)
dialog.exec_()
Run Code Online (Sandbox Code Playgroud)

这是我在Windows 7上得到的结果: 文件选择对话框

qt folderbrowserdialog

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

RAR减压算法

我正在寻找可用于解压缩RAR文件的算法的描述.我不需要创建新的存档,只需解压缩现有存档.

Wotsit.org具有RAR 文件格式(版本2)的描述,但描述没有描述解压缩算法.

此外,是否有人知道RAR版本3是否对文件格式本身引入了任何重大更改?

compression algorithm rar

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

使IntelliJ IDEA在Windows上使用公钥认证

我是Eclipse用户,正在评估切换到IntelliJ IDEA.我正在尝试IDEA 10.0.2.我的操作系统是Windows.

当通过SSH使用Git时,IDEA总是要求我输入密码.我在设置中找不到任何选项以使其使用公钥认证.根据这篇文章,我的密钥在%USERPROFILE%\.ssh目录中,我的HOME变量指向同一目录USERPROFILE.

我不知道我做错了什么,谷歌搜索更多细节没有产生任何结果.有谁知道如何让IDEA使用公钥认证?

编辑:我的密钥是密码保护的.

git ssh intellij-idea public-key

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

Java中缺少属性语法

C#具有声明和使用属性的语法.例如,可以声明一个简单的属性,如下所示:

public int Size { get; set; }
Run Code Online (Sandbox Code Playgroud)

还可以在属性中添加一些逻辑,如下所示:

public string SizeHex
{
    get
    {
        return String.Format("{0:X}", Size);
    }
    set
    {
        Size = int.Parse(value, NumberStyles.HexNumber);
    }
}
Run Code Online (Sandbox Code Playgroud)

无论是否具有逻辑,属性的使用方式与字段相同:

int fileSize = myFile.Size;
Run Code Online (Sandbox Code Playgroud)

我对Java或C#并不陌生 - 我已经使用了很多,而且我总是错过了Java中的属性语法.我已经在这个问题中读到"在Java 7中或者可能永远不会添加属性支持",但坦率地说,我发现在讨论,论坛,博客,评论和JSR中挖掘它们需要做太多工作才能找到答案.为什么.

所以我的问题是:任何人都可以总结为什么Java不太可能获得属性语法?

  • 是因为与其他可能的改进相比,它被认为不够重要吗?
  • 是否存在技术(例如与JVM相关)的限制?
  • 这是政治问题吗?(例如"我已经用Java编写了50年的代码,我说我们不需要steenkin'属性!")
  • 自行车的情况吗?

java syntax properties

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

如何使朋友功能有内部联系

我需要确保声明为某个C++类的朋友的C++函数具有内部链接.

我之所以需要函数成为朋友,是因为它需要访问该类的私有成员,这是一个缓存函数结果的私有成员.

函数需要是同一个类的非成员(或者至少不是实例成员)的原因是因为其他代码需要能够获取非成员函数指针.重构这将太昂贵.

我需要它具有内部链接的原因是因为会有很多这些函数,并且在AIX上,有太多这些函数会在链接时导致TOC溢出错误.这可以使用-bbigtoc链接器开关来克服,但我暂时试图避免这种情况.

此外,我真的希望能够在头文件中保留类声明,但将函数本身放在包含实现的.cxx文件中.

总结一下,现在我有这样的事情:

class Foo
{
    private:
        mutable Qux cachedBarResult;
    // ... more code here ...
    public:
        friend const Qux & Bar(const Foo &);
};

const Qux & Bar(const Foo & foo)
{
    if (foo.cachedBarResult.isEmpty())
    {
        foo.cachedBarResult = _worker_Bar(foo);
    }
    return foo.cachedBarResult;
}

static Qux _worker_Bar(const Foo & foo)
{
    // real Bar work
}
Run Code Online (Sandbox Code Playgroud)

我想做Bar内部联系.可以这样做吗?

c++ linker friend

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

如何通知复合材料的孩子收到/失去焦点?

我有一个SWT Composite,我需要传递给其他一些代码,这些代码会随意添加子代码.有没有办法通知复合材料的孩子收到并失去了焦点?

为了确保清楚,我无法为每个孩子添加听众,因为我不负责创建这些控件.可以随时添加一个孩子.

java events swt focus hierarchy

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

如果我开始返回更多数据,则返回可解包值的可迭代值,这些值不会破坏客户端代码

假设你正在编写一个你打算公开的API.函数quux的API中返回一个列表或元组的发电机,例如yield (foo, bar).

客户端代码通常会像这样使用它:

for foo, bar in quux(whatever):
    # do stuff with foo and bar
Run Code Online (Sandbox Code Playgroud)

现在,假设将来你可能想和and baz一起开始回来.你现在不想退货,因为YAGNI直到证明不然.foobar

什么是最好的方法(尝试)确保未来的更改不会破坏客户端代码?

我知道Python 3允许人们做类似的事情for foo, bar, *idontcare in quux(whatever),在Python 2中,总是可以编写一个实用程序函数(使用这样for foo, bar in iterleft(quux(whatever), 2)):

def iterleft(iterable, limit):
    for item in iterable:
        yield item[:limit]
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更好的方法来做这样的事情.

python iterable-unpacking

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