小编Cod*_*rer的帖子

如何在C#中重载方括号运算符?

例如,DataGridView允许您执行此操作:

DataGridView dgv = ...;
DataGridViewCell cell = dgv[1,5];
Run Code Online (Sandbox Code Playgroud)

但对于我的生活,我找不到索引/方括号运算符的文档.他们怎么称呼它?它在哪里实施?可以扔吗?我怎么能在自己的课上做同样的事情?

ETA:感谢所有快速解答.简而言之:相关文件属于"项目"属性; 重载的方法是声明一个属性,如public object this[int x, int y]{ get{...}; set{...} }; 至少根据文档,DataGridView的索引器不会抛出.它没有提到如果提供无效坐标会发生什么.

再次ETA:好的,即使文档没有提到它(顽皮的微软!),事实证明,如果你为它提供无效的坐标,DataGridView的索引器实际上会抛出一个ArgumentOutOfRangeException.公平的警告.

c# collections operator-overloading operators

242
推荐指数
5
解决办法
12万
查看次数

我可以在CSS中更改图像的高度:在/之后:伪元素吗?

假设我想使用图像装饰指向某些文件类型的链接.我可以将我的链接声明为

<a href='foo.pdf' class='pdflink'>A File!</a>
Run Code Online (Sandbox Code Playgroud)

然后有CSS喜欢

.pdflink:after { content: url('/images/pdf.png') }
Run Code Online (Sandbox Code Playgroud)

现在,这很好用,除非pdf.png我的链接文本的大小不合适.

我希望能够告诉浏览器缩放:after图像,但我不能为我的生活找到正确的语法.或者这就像背景图像,只是不能调整大小?

ETA:我倾向于a)将源图像的大小调整为"正确"大小,服务器端和/或b)更改标记以简单地提供内联的IMG标记.我试图避免这些事情,但他们听起来比试图纯粹用CSS做的东西更兼容.答案我原来的问题似乎是"你可以排序的做到这一点,有时".

css pseudo-element

226
推荐指数
7
解决办法
26万
查看次数

如果.NET中的MemoryStream未关闭,是否会创建内存泄漏?

我有以下代码:

MemoryStream foo(){
    MemoryStream ms = new MemoryStream();
    // write stuff to ms
    return ms;
}

void bar(){
    MemoryStream ms2 = foo();
    // do stuff with ms2
    return;
}
Run Code Online (Sandbox Code Playgroud)

我分配的MemoryStream是否有可能以后不能被处理掉?

我有一个同行评审坚持我手动关闭它,我找不到信息来判断他是否有一个有效点.

.net c# memory-leaks memorystream

108
推荐指数
6
解决办法
7万
查看次数

可以在zsh中使用Bash选项卡完成脚本吗?

我有一个Apache的Hadoop的Bash选项卡完成脚本.通常,我使用zsh作为我的日常shell.当我需要它时,它往往很像bash,但看起来Tab-completion系统在它们之间根本不同.有没有一种简单的方法可以将现有的bash-tab-completion定义"转换"为在zsh中工作?我不想在这方面投入大量时间,但如果这很容易,我会节省适量的努力.

bash zsh tab-completion

80
推荐指数
6
解决办法
3万
查看次数

我可以指定内联显式类型比较器吗?

因此,.NET 3.0/3.5为我们提供了许多查询,排序和操作数据的新方法,这要归功于LINQ提供的所有简洁功能.有时,我需要比较没有内置比较运算符的用户定义类型.在许多情况下,比较非常简单 - 比如foo1.key?= foo2.key.我可以使用匿名委托/ lambda函数简单地指定内联比较,而不是为该类型创建新的IEqualityComparer吗?就像是:

var f1 = ...,
    f2 = ...;
var f3 = f1.Except(
           f2, new IEqualityComparer(
             (Foo a, Foo b) => a.key.CompareTo(b.key)
           ) );
Run Code Online (Sandbox Code Playgroud)

我很确定上面的内容实际上并不奏效.我只是不想让整个班级做一些"沉重"的事情只是为了告诉程序如何比较苹果和苹果.

.net c# linq lambda

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

在Maven多模块项目中,如何在一个孩子中禁用插件?

我有一个maven多模块项目(男孩,我已经写了打开方式在这个网站太多次了).几乎所有模块(即其中包含代码的模块)都应运行maven-site-plugin来生成有关代码覆盖率等的报告.这些模块具有详细的共享配置 - 报告运行,要覆盖哪些文件/排除某些插件等

但是,有一些模块可以处理打包 - 运行程序集插件以生成tarball等.这些都不会从运行站点报告中获得任何好处 - 没有可以分析的代码,也没有可以报告的测试.

所以我有很多需要共享插件配置的模块,以及一些不需要运行插件的模块,最好是根本不需要.如果我把插件放在<build>父POM 的部分中,我可以做前者(共享配置),但在这种情况下,我似乎无法关闭插件.如果我将配置下推到每个模块自己的POM,我可以做后者(避免运行插件),但在这种情况下我无法想出一个分享配置信息的好方法.

我想要的是 - 共享配置,对于有时被子模块禁用的插件 - 甚至可能吗?如果是这样,怎么样?

plugins reporting dependency-management maven

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

我应该如何向ExtJS组件添加工具提示?

我正在创建一个ExtJS组件,我希望它使用QuickTips工具提示.如果我使用DomHelper创建一个元素,我可以设置一个工具提示,没有汗水.但是,如果我制作一个组件,就像

new BoxComponent({
  qtip: "This is a tip"
});
Run Code Online (Sandbox Code Playgroud)

什么都没发生.我也试过命名属性"tooltip",但没有运气.有没有正确的方法来做到这一点?我现在的黑客行为是有效的

new BoxComponent({
  qtip: "This is a tip",
  listeners: {
    rendered: function(c){
      Ext.QuickTips.register({
        target: c.getEl(),
        text: c.qtip
      }
    }
});
Run Code Online (Sandbox Code Playgroud)

我觉得这样不可能.我想我可以只扩展Component来自动完成,但这似乎是一个很常见的情况,我应该能够做到这一点,而不是像这样在引擎盖下戳.

extjs tooltip

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

AJAX调用不受信任(自签名)的HTTPS无声地失败

我想对使用自签名证书的安全服务器进行AJAX调用.在我的应用程序使用的环境中,这很好 - 我可以向用户提供CA证书,并让他们在使用应用程序之前安装它.但是,有时,用户会在安装证书之前尝试访问该应用程序.在这些情况下,应用程序默默地失败 - 至少在Firefox(问题的最常见情况)中,看起来调用无声地死亡,甚至没有触发错误处理程序.FWIW,如果用户访问服务器上的实际页面,则会收到证书警告.

我可以破解一个解决方法 - 例如,发出一个心跳/ ping请求并设置一个看门狗定时器来查看服务器是否及时响应 - 但这看起来好吧,哈希.我希望能够提前测试连接.确保要与之交谈的服务器具有来自Javascript的可信证书的"正确"方法是什么?如果它有任何区别,我正在通过JQuery做我的AJAX请求.

更新:这里有一个很棒的妙语.事实证明,AJAX根本不是问题.我确信它基于与自签名证书相关的症状,但缺乏AJAX错误令人不安,尤其是.鉴于以下答案中链接的规范.另一个团队成员钉了它:AJAX错误处理程序没有启动,因为JQuery从未加载过!我们在我们网站的另一个子域中包含了JQuery,也是在HTTPS上托管的 - 用户为ourService.example.com添加了例外,但没有为js.example.com添加例外.显然,如果您将<script>标记指向不受信任的安全连接,那么它也会无声地失败.

{/ headdesk}

ajax ssl jquery ssl-certificate

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

将MOOV原子放在MP4文件的开头是不是有缺点?

我看到很多关于将moov原子从MP4视频容器的末端重新定位到开头的问题,以使视频"网络优化"或更容易流式传输.似乎大多数工具在首次编码视频时都需要一个明确的选项才能执行此操作(如果它完全可用).

如果将原子置于开头使得流式传输工作更好,并且事后做到这一点成本很高,为什么我最初想要用原子对视频进行编码?有什么好处?

mp4 video-encoding h.264

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

如何在不同的编程语言中使用相同的正则表达式?

我已经看到了这个问题,而且我从经验中知道,每种语言似乎都支持不同的正则表达方言.我认为这个问题已存在很长时间了,所以有人一定想对此做些什么.

我有一个非常大的项目涉及JavaScript,Ruby和Java,所有这些都必须触及相同的正则表达式.我们选择Java作为我们的"官方"RE解释器,这意味着每当其他两种语言需要评估RE时,他们必须以某种方式将它传递给Java程序,并且这开始增加了很多开销.

如果我可以选择任何 RE方言并至少从所有语言中半原生地调用它,那对我们来说这将是一个巨大的进步.这可能吗?它已经完成了吗?我们查看了PCRE,从技术上讲,它可以通过Java和Ruby的本机绑定来调用它(虽然它让JS在寒冷中离开),但我还没有发现任何人真正这样做.我们一个人吗?

ETA:我没有提到的一个问题是这个系统应用了用户提供的正则表达式.(是的,我知道这是一个安全问题等,但它是供受信任的,归属用户在内部使用的.)我当然建议建立一个"不要这样做"的功能列表,以避免,但我希望这不是最好的解决方案.

javascript ruby java regex pcre

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