小编Ben*_*ink的帖子

为什么我不能强制派生类来拥有无参数构造函数?

我正在尝试执行以下操作:

class Program
{
    static void Main(string[] args)
    {
        foo<baz> fooObject = new foo<baz>();
        AnotherClass<baz> _baz = new AnotherClass<baz>();
        _baz.testMethod(fooObject);
    }
}

public class AnotherClass<T> where T : bar
{
    public void testMethod(foo<T> dummy)
    {
        foobar = dummy;
    }

    private foo<T> foobar = null;
}

public class foo<T> where T : bar, new()
{
    public foo()
    {
        _t = new T();
    }

    private T _t;

}

public abstract class bar
{
    public abstract void someMethod();
    // Some implementation
}

public …
Run Code Online (Sandbox Code Playgroud)

c# generics

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

正则表达式匹配多次出现IFF另一个字符串出现

我真的希望可以在正则表达式中解决此问题,但我担心不会...。

我正在寻找一个正则表达式,它将仅返回另一个术语出现在同一字符串中的多个匹配项。用一个例子可以更好地解释这一点。考虑:

The numbers are 144, 424, and 345. Not 45.
Run Code Online (Sandbox Code Playgroud)

我只想匹配“ 144”,“ 424”和“ 345”。(任何3位数的数字)-但前提是他们之前使用“ 数字 ” 一词。所以下面的附加示例:

The numbers we are looking for: 234 & 992
Run Code Online (Sandbox Code Playgroud)

应该仅返回“ 234”和“ 992”。

以下句子不匹配任何内容:

Some examples: 234, 244 and 12
Run Code Online (Sandbox Code Playgroud)

我以为我使用了以下正则表达式:

(?<=numbers\b)(?:.|\n)*?\b(\d{3})\b
Run Code Online (Sandbox Code Playgroud)

但它只匹配第一个数字。我正在努力实现的目标是否可能?在此似乎无法进行先行或后退的方式。出于种种原因,我仅限于仅使用一个正则表达式表达式,并且在事发后我无法选择访问各个捕获组。因此,寻找纯正则表达式方法!

java regex

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

嵌套指令之间的通信

我正在尝试在父指令和它的嵌套子指令之间进行通信,反之亦然.我已经设法通过使用$ broadcast和$ emit来实现这一点,但是因为我在指令中传递了一些参数,我必须在我的指令上创建隔离范围,所以为了$ broadcast/$ emit来我必须在父作用域(范围.$ parent.$ broadcast)上播放'up a level'.现在,广播不再仅仅是针对嵌套子节点,而是针对同级别的所有指令,这是我不想要的.我创建了一个plunker显示问题,在这里.我需要的是当按下其中一个按钮时,只有child指令接收广播消息,反之亦然.我错过了什么,或者在使用隔离范围时这是不可能的?

在我的HTML中:

<body ng-app="myApp">
  <directive1 data-title="Click me to change name">
    <directive2 data-name="John Smith"></directive2>
  </directive1>

  <directive1 data-title="Click me to change this other name">
    <directive2 data-name="Gordon Freeman"></directive2>
  </directive1>
</body>
Run Code Online (Sandbox Code Playgroud)

指令1:

<div>
  <button ng-click="changeName()">{{title}}</button>
  <div ng-transclude></div>
</div>
Run Code Online (Sandbox Code Playgroud)

指令2:

<div>
  <h2>{{name}}</h2>
</div>
Run Code Online (Sandbox Code Playgroud)

我的指示:

myApp.directive('directive1', function(){
  return {
    restrict: 'E',
    replace: true,
    templateUrl: 'Directive1.html',
    transclude: true,
    scope: {
      title: '@'
    },
    link: function(scope, elem){
      scope.changeName = function() {
        scope.$parent.$broadcast('ChangeName');
      };

      scope.$parent.$on('NameChanged', function(event, args){
        scope.title = …
Run Code Online (Sandbox Code Playgroud)

angularjs angularjs-directive angularjs-scope

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