小编Dor*_*rus的帖子

提供Angular服务的VS forRoot

我想知道这些代码是否正确

是等价与否.

我可以使用provideIn吗?

与...相同的结果

forRoot?

提前致谢

@Injectable({
  providedIn: 'root'
})
export class MyService {
  constructor() { }
}
Run Code Online (Sandbox Code Playgroud)

[我仍然会将myModule保留为与allowedId单例服务一起使用]

angular

7
推荐指数
3
解决办法
2558
查看次数

等待Task.Delay(foo); 需要几秒而不是毫秒

Task.Delay当与类似IO的操作结合使用时,随机使用可变延迟需要几秒而不是几毫秒.

代码重现:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApplication {
    class Program {
        static void Main(string[] args) {

            Task[] wait = {
                              new delayTest().looper(5250, 20), 
                              new delayTest().looper(3500, 30),
                              new delayTest().looper(2625, 40), 
                              new delayTest().looper(2100, 50)
                          };
            Task.WaitAll(wait);

            Console.WriteLine("All Done");
            Console.ReadLine();
        }
    }
    class delayTest {
        private Stopwatch sw = new Stopwatch();

        public delayTest() {
            sw.Start();
        }

        public async Task looper(int count, int delay) {
            var start = sw.Elapsed;
            Console.WriteLine("Start ({0}, {1})", …
Run Code Online (Sandbox Code Playgroud)

.net c# task-parallel-library async-await

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

如何在Java中实现与C#相同的覆盖体验?

考虑以下Java代码:

public class overriding {
    public static void main(String[] args) {
        b b = new b();
        a a = (a)b;
        a.Info();
        b.Info();
    }
}

class a {
    void Info() {
        System.out.println("I'm a");
    }
}

class b extends a {
    void Info() {
        System.out.println("I'm b");
    }
}
Run Code Online (Sandbox Code Playgroud)

现在让我们尝试在C#中做同样的事情

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            b b = new b();
            a a = (a)b;
            a.Info();
            b.Info();
            Console.ReadLine();
        }
    }

    class a
    {
        public void Info()
        {
            Console.WriteLine("I'm …
Run Code Online (Sandbox Code Playgroud)

c# java

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

Excel函数-将Unicode转换为ASCII

Excel(2010)中是否有任何将Unicode解码为ASCII文本的函数?

我工作表中的一栏包含葡萄牙语中的单词/句子。

例如:

Esse Jean é feio né
Run Code Online (Sandbox Code Playgroud)

应该成为

Esse Jean é feio né
Run Code Online (Sandbox Code Playgroud)

é-文本中的该字母不是葡萄牙语,是否有任何功能可将其转换为葡萄牙语字体格式,即é

如何Esse Jean é feio né在Excel中将上述文本解码为原始格式?

unicode excel excel-formula

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

Reactive Extensions:拆分输入,处理和连接

基本上,我有一个可观察的输入字符串,我想单独处理,然后对结果做一些事情.如果输入字符串包含逗号(作为分隔符),我想分割字符串并单独处理每个子字符串,然后对每个字符串序列执行某些操作.下面的代码段说明了我尝试做的简化版本:

[Fact]
public void UniTest1()
{
    var observable = new ReplaySubject<string>();
    observable.OnNext("a,b");
    observable.OnNext("c,d,e");
    observable.OnCompleted();

    var result = new List<string[]>();
    observable
        .SelectMany(x => x.Split(','))
        .Select(x => x.ToUpper())
        .ToArray() // How to collect an IEnumerable for each item here?
        .Do(s => result.Add(s))
        .Subscribe();

    // Here, result is actually {{"A","B","C","D","E"}}, I need {{"A","B"},{"C","D","E"}}
    Assert.Equal(2, result.Count);

    Assert.Equal("A", result[0][0]);
    Assert.Equal("B", result[0][1]);

    Assert.Equal("C", result[1][0]);
    Assert.Equal("D", result[1][1]);
    Assert.Equal("E", result[1][2]);
}
Run Code Online (Sandbox Code Playgroud)

正如评论中所解释的,上述方法不起作用..ToArray() - 调用将整个observable连接成一个序列.

但是,我已经通过将拆分和处理放入单个操作来解决这个问题,如下所示:

[Fact]
public void UniTest2()
{
    var observable = new ReplaySubject<string>();
    observable.OnNext("a,b");
    observable.OnNext("c,d,e");
    observable.OnCompleted(); …
Run Code Online (Sandbox Code Playgroud)

.net c# system.reactive

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

将Observable与第二个Observable结合使用,该Observable使用来自第一个的结果

我有两个返回Observable的方法:

Observable<String> firstObservable();
Observable<String> secondObservable(String value);
Run Code Online (Sandbox Code Playgroud)

对于第一个Observable的每个结果,我得到第二个Observable的新实例.对于来自第二个observable的每个结果,我将返回具有组合结果的对象.

firstObservable ->  x----x----x----x----x
                     \    \    \    \    \
secondObservable ->   y(x)-y(x)-y(x)-y(x)-y(x)
                      \     \     \     \     \
result ->             {x,y}-{x,y}-{x,y}-{x,y}-{x,y}
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

java rx-java rx-android

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

Fitnesse正则表达式与管道

我正在使用fitnesse,我需要匹配2个可能的输出.

我的脚本表如下所示:

|script|MyClass|
|check|doSomething|value|=~/Result1|Result2/|
Run Code Online (Sandbox Code Playgroud)

我的问题是管道 在正则表达式中读取为列分隔符而不是.有没有办法逃脱管道角色?

regex fitnesse

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

订阅在Reactive Extensions中结束时关闭非托管资源

我正在从Rx向网络写入数据.当然,我Finally在订阅结束时用来关闭我的流.这在干净的OnError()OnComplete().RX将运行OnNext() ... OnNext(),OnComplete(),Finally()按顺序排列.

但是,有时我想提前终止序列,我这样做是为了使用Dispose().不知怎的Finally(),现在与最后一次OnNext()调用并行运行,导致仍然写入流中的异常OnNext(),以及不完整的写入.

我的订阅看起来大致如下:

NetworkStream stm = client.GetStream();
IDisposable disp = obs
    .Finally(() => {
        client.Close();
    })
    .Subscribe(d => {
        client.GetStream().Write(d.a, 0, d.a.Lenght);
        client.GetStream().Write(d.b, 0, d.b.Lenght);
    } () => {
        client.GetStream().Write(something(), 0, 1);
    });
Thread.sleep(1000);
disp.Dispose();
Run Code Online (Sandbox Code Playgroud)

我也试过了替代方案CancellationToken.

如何正确取消订阅?我不介意它跳过OnComplete(),只要Finally()还在运行.但是,Finally()并行运行存在问题.

我也觉得应该有一个更好的方法来管理资源,通过将声明移动到序列中,这将是一个更好的解决方案.

编辑:以下代码更清楚地显示问题.我希望它总是打印出来,相反,它会经常给出错误,表示在最后一次之前Dispose结束OnNext.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using …
Run Code Online (Sandbox Code Playgroud)

c# system.reactive

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

"|| 0"在JavaScript中有什么作用?

我有一段JavaScript代码显示:

function(next, feather) {
  var l = Number(171) + (next || 0);
  var m = Math.max(1, l - 9);
  return {
    lc: 300 * (l + 1) * m + (5 * feather || 0)
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我已经简化了一点.但任何人都可以解释"|| 0"的作用吗?据我所知,它什么也没做.

(注意我用Number(171)替换了一个函数,因为该函数有效地返回一个数字,羽毛也应该是一个数字,大部分时间是0,有时是1).

javascript

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