小编Chr*_*Rea的帖子

选择焦点上输入的所有文本内容在Microsoft Edge中不起作用

我似乎在选择输入字段中的所有文本时遇到了特定于Edge的问题.我正在使用angular的ng-focus调用控制器中的函数来选择字段中的所有文本.

function selectAllTextOnFocus($event) {
    $event.target.select();
}
Run Code Online (Sandbox Code Playgroud)

这适用于除Microsoft Edge之外的所有浏览器,Microsoft Edge不会在输入字段中选择文本.

我还尝试了另一种jQuery解决方案,除了输入字段的第一个选择之外.之后它按预期工作并选择所有文本.

$('input').on('focus', function (e) {
    $(this).one('mouseup', function () {
        $(this).select();
        return false;
    }).select();
});
Run Code Online (Sandbox Code Playgroud)

这只是Microsoft Edge的已知问题,还是我错过了什么?

javascript jquery textinput angularjs microsoft-edge

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

使用Javascript隐藏datagrid列?

我有一个包含大约20列的.net数据网格.我需要根据点击按钮使用javascript来切换列的可见性.有任何想法吗?

.net html javascript dom

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

覆盖C#中的Object.Equals()实例方法; 现在代码分析/ FxCop警告CA2218:"还应该重新定义GetHashCode".我该抑制吗?

我在C#项目中有一个复杂的类,我希望能够进行相等测试.这不是一个微不足道的阶级; 它包含各种标量属性以及对其他对象和集合的引用(例如IDictionary).为了它的价值,我的班级是密封的.

为了在我的系统中的其他地方启用性能优化(避免昂贵的网络往返的优化),我需要能够将这些对象的实例相互比较以实现相等 - 除了内置的引用相等 - 所以我重写了Object.Equals()实例方法.但是,现在我已经这样做了,Visual Studio 2008的代码分析又称FxCop,我默认启用它,它引发了以下警告:

警告:CA2218:Microsoft.Usage:由于'MySuperDuperClass'重新定义了Equals,它还应该重新定义GetHashCode.

我想我理解这个警告的基本原理: 如果我要将这些对象用作集合中的,那么哈希码很重要.即看到这个问题.但是,我不打算将这些对象用作集合中的键.永远.

感觉有理由压制警告,我查找了MSDN文档中的代码CA2218以获取警告的全名,因此我可以将SuppressMessage属性应用于我的类,如下所示:

    [SuppressMessage("Microsoft.Naming",
        "CA2218:OverrideGetHashCodeOnOverridingEquals",
        Justification="This class is not to be used as key in a hashtable.")]
Run Code Online (Sandbox Code Playgroud)

但是,在进一步阅读时,我注意到以下内容:

如何修复违规行为

要修复违反此规则的行为,请提供GetHashCode的实现.对于一对相同类型的对象,如果Equals的实现为该对返回true,则必须确保实现返回相同的值.

何时抑制警告

-----> 不要压制此规则的警告.[箭头和重点我的]

所以,我想知道:为什么我不应该按照我的计划来压制这个警告? 我的情况不是要求抑制吗?我不想为这个永远不会被调用的对象编写GetHashCode()的实现,因为我的对象永远不会成为集合中的键.如果我想要迂腐而不是抑制,那么用一个抛出NotImplementedException的实现覆盖GetHashCode()会更合理吗?


更新:我只是在比尔瓦格纳的好书" 有效C#"中重新审视了这个主题,他在"第10项:了解GetHashCode()的陷阱"中说:

如果您定义的类型不会被用作容器中的键,那么这无关紧要.表示窗口控件,网页控件或数据库连接的类型不太可能用作集合中的键.在那些情况下,什么都不做.即使效率非常低,所有引用类型都将具有正确的哈希码.[...]在您创建的大多数类型中,最好的方法是完全避免GetHashCode()的存在.

...这就是我最初得到这个想法的地方,我不必总是关注GetHashCode().

c# warnings fxcop suppress-warnings

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

Visual Studio 2017 Xamarin Android编译警告"fakeLogOpen(/ dev/log_security)失败"打破构建

我正在尝试使用Visual Studio 2017(和Xamarin)在Windows上编译用C#编写的Android应用程序.

每当我尝试编译项目并将其部署到android模拟器时,我一直收到这个警告:" fakeLogOpen(/ dev/log_security)失败 ".

没有解释原因的细节.

为什么我收到此错误/警告?

c# android compiler-errors xamarin visual-studio-2017

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

OpenSource Instant Messaging API

我想创建自己的IM,我正在搜索开源IM API.您认为最好的开源IM API是什么?什么好的前端使用?

谢谢.

c++ api open-source instant-messaging

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

形状继承示例和"Ruby方式"

在我从十年的C++过渡到Ruby的过程中,我发现自己第二次猜测如何完成最简单的事情.鉴于下面的经典形状推导示例,我想知道这是否是"The Ruby Way".虽然我相信下面的代码没有任何本质上的错误,但我仍然觉得我没有充分利用Ruby的全部功能.

class Shape
  def initialize
  end
end

class TwoD < Shape
  def initialize
    super()
  end

  def area
     return 0.0
  end
end

class Square < TwoD
  def initialize( side )
    super()
    @side = side
  end

  def area
    return @side * @side
  end
end

def shapeArea( twod )
  puts twod.area
end

square = Square.new( 2 )

shapeArea( square ) # => 4
Run Code Online (Sandbox Code Playgroud)

这是实施"红宝石之路"吗?如果没有,你会如何实现这个?

ruby inheritance idioms

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

如何让Flex Builder 3生成两个版本:一个"-use-network = true",另一个"-use-network = false"?

我正在构建一个需要在两种不同的部署方案下运行的Flex应用程序:

首先,该应用程序将托管在Web上.SWF加载一些外部资源(图像,文本),因此需要网络访问,这是Flex Builder 3默认构建标志"-use-network=true".我不需要做任何特别的事情; 它只是工作.

其次,应用程序将写入CD并启用自动运行以启动托管SWF的index.html.SWF 仍然需要能够加载相同的外部资源,这些资源驻留在子文件夹中的CD上.由于这些文件位于CD上,因此它们被视为本地文件,因此Flash安全性要求使用标志来构建SWF "-use-network=false".我将它添加到Flex项目的Properties对话框中"Flex Compiler"下的"Additional compiler arguments"文本框中.

这一切都按预期工作,但必须手动修改Flex Builder项目设置以根据具体情况添加或删除该标志是很繁琐的.

理想情况下,我想只构建一次项目并拥有多个输出文件夹:一个用于网络部署方案,另一个用于本地部署方案.

最好的方法是什么?是转向Ant构建的方式,还是有更简单的方法?如果Ant构建配置是正确的方法,您是否有一个示例来共享这样的多个构建配置?

谢谢你的帮助!

ant flexbuilder build-process flex3 mxmlc

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

从CodeRush迁移到ReSharper(反之亦然).任何资源/帮助进行过渡?

我一直在使用CodeRush和Refactor!亲了一段时间,但我正考虑搬到ReSharper.

一旦我卸载CodeRush,我立即开始错过一些关键功能,包括:

  • 使用Tab键导航参考,
  • 使用F2键重命名变量,方法等,
  • 基本的重构,如提取方法等.

我确信ReSharper中存在相应的功能.但是,除了每次我发现自己遗漏某些内容时必须通过ReSharper在线文档查看时,是否有人建立了键盘快捷键等的对应表,以及每个键盘的共同关键功能?或者,如果您自己使用过这两种产品,您能否分享一些您所知道的基本等价物?

注意:这个问题没有被要求辩论哪个更好.我喜欢的CodeRush,但我想知道第一手如果我想ReSharper的更多.快速熟悉ReSharper将帮助我公平地评估它.对于哪个更好的辩论,请参阅ReSharper与CodeRush的问题.

resharper coderush visual-studio

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

通过添加哈希来防止查询字符串操作?

为了保护Web应用程序免受查询字符串操作,我正在考虑向每个url添加一个查询字符串参数,该参数存储所有其他查询字符串参数和值的SHA1哈希值,然后根据每个请求的哈希值进行验证.

此方法是否提供强大的保护,防止用户操纵查询字符串值?这样做还有其他任何缺点/副作用吗?

我并不特别关注这个私人网络应用程序的"丑陋"网址.由于对于相同的查询字符串参数,哈希值始终相同,因此Url仍然是"可收藏"的.

这是一个ASP.NET应用程序.

asp.net security hash query-string

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

Adobe套接字策略文件服务器问题

有没有人能够成功实现服务以向FlashPlayer提供所需的套接字策略文件?

我正在运行Adobe提供的服务的Python实现

http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html
Run Code Online (Sandbox Code Playgroud)

并使用以下策略文件:

<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy>
 <site-control permitted-cross-domain-policies="master-only"/>
 <allow-access-from domain="*" to-ports="*" secure="false"/>
</cross-domain-policy>
Run Code Online (Sandbox Code Playgroud)

并从Flash接收此消息:

[SecurityErrorEvent type="securityError" bubbles=false 
cancelable=false eventPhase=2
text="Error #2048: 
Security sandbox violation: http://www.mapopolis.com/family/Tree.swf   
cannot load data from www.mapopolis.com:1900."]
Run Code Online (Sandbox Code Playgroud)

谢谢.

sockets security flash policy actionscript

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

Java到C#转换器

我听说JNBridge会将C#代码翻译成本机Java代码.(我还没有测试过).

市场上是否有可用于将Java代码转换为本地C#的工具?(或者JNBridge还将Java代码转换为C#?)

c# java translation

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