小编vcs*_*nes的帖子

TypeScript中是否可以使用强类型函数作为参数?

在TypeScript中,我可以将函数的参数声明为Function类型.是否存在一种"类型安全"的方式来解决这个问题?例如,考虑一下:

class Foo {
    save(callback: Function) : void {
        //Do the save
        var result : number = 42; //We get a number from the save operation
        //Can I at compile-time ensure the callback accepts a single parameter of type number somehow?
        callback(result);
    }
}

var foo = new Foo();
var callback = (result: string) : void => {
    alert(result);
}
foo.save(callback);
Run Code Online (Sandbox Code Playgroud)

保存回调不是类型安全的,我给它一个回调函数,其中函数的参数是一个字符串,但我传递一个数字,并编译没有错误.我可以在保存类型安全功能时创建结果参数吗?

TL; DR版本:在TypeScript中是否有等效的.NET委托?

typescript

491
推荐指数
7
解决办法
24万
查看次数

如何连接两个词典在Python中创建一个新词典?

说我有三个词

d1={1:2,3:4}
d2={5:6,7:9}
d3={10:8,13:22}
Run Code Online (Sandbox Code Playgroud)

如何创建一个d4结合这三个词典的新内容?即:

d4={1:2,3:4,5:6,7:9,10:8,13:22}
Run Code Online (Sandbox Code Playgroud)

python dictionary concatenation

210
推荐指数
5
解决办法
26万
查看次数

什么是Kestrel(vs IIS/Express)

什么是Kestrel Web服务器以及它与IIS/IIS Express的关系?

我来自在IIS Express上开发应用程序并在IIS Web服务器上托管它们.使用ASP.NET Core我依赖于Microsoft.AspNetCore.Server.Kestrel我的启动.UseServer("Microsoft.AspNetCore.Server.Kestrel").但是当我运行我的网站时,我仍然在系统托盘中获得IIS Express图标.有人问我是否使用IIS Express或Kestrel,我不知道该说些什么!

我没有任何跨平台要求,因为我在PC上开发并在Azure中托管,所以我很困惑,如果我甚至是needKestrel,但它似乎没有替代品 - 即使最简单的样本也使用Kestrel.

asp.net iis kestrel-http-server asp.net-core

134
推荐指数
4
解决办法
3万
查看次数

解析并修改.NET Core中的查询字符串

我得到一个包含查询字符串的绝对URI.我希望安全地将值附加到查询字符串,并更改现有参数.

我不想&foo=bar使用或使用正则表达式,URI转义是棘手的.相反,我想使用内置机制,我知道这将正确地执行此操作并处理转义.

发现 大量的答案都可以使用HttpUtility.然而,这是ASP.NET Core,不再有System.Web程序集,因此不再需要HttpUtility.

在针对核心运行时的ASP.NET Core中执行此操作的适当方法是什么?

c# asp.net asp.net-core

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

在c#中使用ping

当我使用Windows Ping远程系统时,它说没有回复,但是当我用c#ping时,它表示成功.Windows正确,设备未连接.为什么我的代码能够在Windows不成功时成功ping?

这是我的代码:

Ping p1 = new Ping();
PingReply PR = p1.Send("192.168.2.18");
// check when the ping is not success
while (!PR.Status.ToString().Equals("Success"))
{
    Console.WriteLine(PR.Status.ToString());
    PR = p1.Send("192.168.2.18");
}
// check after the ping is n success
while (PR.Status.ToString().Equals("Success"))
{
    Console.WriteLine(PR.Status.ToString());
    PR = p1.Send("192.168.2.18");
}
Run Code Online (Sandbox Code Playgroud)

c# ping

83
推荐指数
2
解决办法
17万
查看次数

getter-only auto属性和表达式body属性之间有什么区别?

在C#6中,您可以通过使用仅限getter的自动属性来简化属性的实现.例如,如果我正在实现抽象Stream类:

public override bool CanRead { get; } = true;
Run Code Online (Sandbox Code Playgroud)

但是我也可以用表达式体写它,在C#6中也是新的:

public override bool CanRead => true;
Run Code Online (Sandbox Code Playgroud)

两者之间有什么区别,什么时候应该使用其中一个?

c# c#-6.0

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

使用twitter bootstrap 2.0 - 如何使列高度相等?

bootstrap 2.0是否有任何助手可以使.span1,.span2 ...... .span12等于高度.我已经嵌套了这种类型的HTML

<div class='container'>
  <div class='row'>
    <div class='span2'>
      <div class='well'>
        XXXX
      </div>
    </div>
    <div class='span2'>
      <div class='well'>
        XXXX
        XXXX
      </div>
    </div>
    <div class='span2'>
      <div class='well'>
        XXXX
        XXXX
        XXXX
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我希望每个井都达到相同的高度?

css twitter-bootstrap

50
推荐指数
3
解决办法
4万
查看次数

如何在while循环中添加中断来解决过载歧义?

考虑一下这个Reactive Extensions片段(忽略它的实用性):

return Observable.Create<string>(async observable =>
{
    while (true)
    {
    }
});
Run Code Online (Sandbox Code Playgroud)

这不能使用Reactive Extensions 2.2.5(使用NuGet Rx-Main包)进行编译.它失败了:

错误1以下方法或属性之间的调用不明确:'System.Reactive.Linq.Observable.Create <string>(System.Func <System.IObserver <string>,System.Threading.Tasks.Task <System.Action> >)'和'System.Reactive.Linq.Observable.Create <string>(System.Func <System.IObserver <string>,System.Threading.Tasks.Task>)'

但是,break在while循环中添加任何位置可以修复编译错误:

return Observable.Create<string>(async observable =>
{
    while (true)
    {
        break;
    }
});
Run Code Online (Sandbox Code Playgroud)

这个问题可以在没有Reactive Extensions的情况下重现(如果你想在没有摆弄Rx的情况下尝试它,会更容易):

class Program
{
    static void Main(string[] args)
    {
        Observable.Create<string>(async blah =>
        {
            while (true)
            {
                Console.WriteLine("foo.");
                break; //Remove this and the compiler will break
            }
        });
    }
}

public class Observable
{
    public static IObservable<TResult> Create<TResult>(Func<IObserver<TResult>, Task> subscribeAsync)
    { …
Run Code Online (Sandbox Code Playgroud)

c#

48
推荐指数
2
解决办法
2740
查看次数

为什么NSDateFormatter会为这4个时区返回nil日期?

尝试在iOS6中运行它(尚未测试iOS6之前):

NSDateFormatter *julianDayDateFormatter = nil;
julianDayDateFormatter = [[NSDateFormatter alloc] init];
[julianDayDateFormatter setDateFormat:@"g"];

for (NSString *timeZone in [NSTimeZone knownTimeZoneNames]) {
    julianDayDateFormatter.timeZone = [NSTimeZone timeZoneWithName: timeZone];
    NSDate *date = [julianDayDateFormatter dateFromString:[NSString stringWithFormat:@"%d", 2475213]];
    if (date == nil)
        NSLog(@"timeZone = %@", timeZone);
}
Run Code Online (Sandbox Code Playgroud)

并得到以下输出:

America/Bahia
America/Campo_Grande
America/Cuiaba
America/Sao_Paulo
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释为什么这四个时区的行为是这样的,NSDateFormatter设置为朱利安日数?所有其他时区使NSDateFormatter返回实际的NSDates.

objective-c nsdate nsdateformatter julian-date ios6

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

为什么表达式树不能包含命名参数规范?

使用AutoMapper,我找到了一个命名参数非常适合的地方:

.ForMember(s => s.MyProperty, opt => opt.MapFrom(s => BuildMyProperty(s, isAdvanced: false)))
Run Code Online (Sandbox Code Playgroud)

但编译器对我大吼:

表达式树可能不包含命名参数规范

所以我不得不回复:

.ForMember(s => s.MyProperty, opt => opt.MapFrom(s => BuildMyProperty(s, false)))
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么编译器在这种情况下不允许使用命名参数?

c# expression-trees c#-4.0

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