小编Jam*_*rpe的帖子

你如何等待同一台Console.WriteLine()行的输入?

我想提出一个问题,例如:

你叫什么名字?乔

我将如何使用Console.WriteLine也等待同一行的响应而不是将其分解为:

你叫什么名字?

c#

39
推荐指数
2
解决办法
9万
查看次数

使用<和>运算符时支持哪些隐式转换?

我有一个结构:

public struct Decibel
{
    public readonly double Value;

    public Decibel (double value)
    {
        Value = value;
    }

    public static implicit operator Decibel (double decibels)
    {
        return new Decibel (decibels);
    }

    public static implicit operator double (Decibel decibels)
    {
        return decibels.Value;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我可以这样做:

bool x = new Decibel (0) < new Decibel (1);
Run Code Online (Sandbox Code Playgroud)

似乎编译器足够智能转换Decibeldouble,然后使用<运算符进行双打?

我有不同的struct名字Duration,包装TimeSpan.它有隐式转换为TimeSpan向/从Duration,但<>运营商都没有工作了.

c#只识别原始类型之间的转换吗?

c# implicit-conversion

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

强制子类初始化变量

我有一个必须初始化Foo的字段的类_customObject.我还有一个Bar继承自的类Foo:

public abstract class Foo
{
    protected CustomObject _customObject;

    public Foo()
    {
        // Do stuff
    }
    // Other methods that use _customObject
}

public class Bar : Foo
{
    // Constructor and other methods
}
Run Code Online (Sandbox Code Playgroud)

我无法初始化该对象_customObject,Foo因为每个继承的子节点都包含一个不同的子节点CustomObject,因此必须在每个子类中初始化它:

public class Bar : Foo
{
    public Bar()
    {
        _customObject = new CustomObjectInherited1();
    }
}


public class Baz : Foo
{
    public Baz()
    {
        _customObject = new CustomObjectInherited2();
    }
} …
Run Code Online (Sandbox Code Playgroud)

.net c# inheritance

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

Array.prototype.slice - 如果结束参数大于数组长度怎么办?

我找不到它 - 如果end传递的参数Array.prototype.slice大于数组长度怎么办?

我已经测试了它并且它可以工作(在Chrome中),但是我不确定这是否是标准行为因此可以普遍使用?

javascript arrays

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

可空的限制

有谁知道为什么这段代码不能编译?

Nullable<Nullable<int>> n = null;
Run Code Online (Sandbox Code Playgroud)

我意识到Nullable有一个约束

where T : struct
Run Code Online (Sandbox Code Playgroud)

但Nullable是结构.我也知道这个约束有一个限制"类型参数必须是一个值类型.可以指定除Nullable之外的任何值类型." (https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/generics/constraints-on-type-parameters).那么它是怎样工作的?这是在编译器级别解决的吗?

c#

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

如何避免在JavaScript应用程序中丢失"this"上下文?

以下是我的代码示例:

function QueueService() {
    var key = Config.get("AWS.accessKeyID");
    var secret = Config.get("AWS.secretKey");
    var credentials = new AWS.Credentials(key, secret, sessionToken = null);

    this._sqs = new Promise.promisifyAll(new AWS.SQS({apiVersion: '2012-11-05', region: "us-west-2", endpoint: "sqs.us-west-2.amazonaws.com", credentials: credentials}));
}

QueueService.prototype.FillBirdQueue = function(birds) {
    var self = this;

    birds.forEach(function(bird_batch) {
        var params = {
            Entries: bird_batch,
            QueueUrl: Config.get("AWS-Queue.Birds")
        };

        return self._sqs.sendMessageBatchAsync(params);
    });
};
Run Code Online (Sandbox Code Playgroud)

如果我省略var self = this;并调用return this._sqs.sendMessageBatchAsync(params);我得到一个错误,因为_.sqs未定义.它似乎this已经改变了,唯一的方法是保存它以供以后使用var self = this;.

我觉得有更好的方法来解决这个问题,但我并不完全确定如何使用这些工具.我目前正在使用Bluebird和Lodash,两者都支持绑定.在过去,我通过this在Bluebird中执行以下操作:

somethingAsync().bind(this).then(function(result){});
Run Code Online (Sandbox Code Playgroud)

我无法使用这种模式,因为我最初没有做任何异步.我只调用一个promise并且需要能够访问我在构造函数中定义的变量来执行此操作. …

javascript node.js promise lodash bluebird

6
推荐指数
0
解决办法
462
查看次数

了解hashchange事件的执行顺序

关于此代码段,我有一个问题:

window.location.hash=1;

$(window).on('hashchange', function() {
    alert('hello');
});
Run Code Online (Sandbox Code Playgroud)

上面的脚本应该这样做:

  1. 将位置哈希设置为 1
  2. 任何进一步的变化 - > alert('hello')

这是问题:为什么 hashchange在第一次执行时第一次调用?这个脚本不应该只更改哈希而没有任何警报吗?

如何修复它以使其按照描述工作?

javascript jquery

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

如何从另一个资源中的计数资源中访问属性?

我正在使用Terraform编写AWS构建脚本.我在多个可用区域中启动了多个实例,在本例中,2:

resource "aws_instance" "myinstance" {
    count                   = 2
    ami                     = "${var.myamiid}"
    instance_type           = "${var.instancetype}"
    availability_zone       = "${data.aws_availability_zones.all.names[count.index]}"
    # other details omitted for brevity
}
Run Code Online (Sandbox Code Playgroud)

我现在需要为这些实例分配一个弹性IP,以便将来可以在不更改IP地址的情况下重建实例.下面的说明我有什么喜欢做的事:

resource "aws_eip" "elastic_ips" {
    count    = 2
    instance = "${aws_instance.myinstance[count.index].id}"
    vpc      = true
}
Run Code Online (Sandbox Code Playgroud)

但是这个错误有:

预期"}"但发现"."

我也尝试过使用lookup:

instance = "${lookup(aws_instance.sbc, count.index).id}"
Run Code Online (Sandbox Code Playgroud)

但是失败了同样的错误.

如何将弹性IP附加到这些实例?

terraform

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

JavaScript String对象被分割成jQuery.post上的数组

我正在使用jQuery来执行ajax调用 - 其中许多工作正常,但我只是遇到一个奇怪的问题,试图将字符串发送到服务器.我已经将代码缩小到这样:

var x = new String('updateGroup');
var y = 'updateGroup';
$.post('page.aspx', {
    f: x,
    f2: y
}, function(data) {
});
Run Code Online (Sandbox Code Playgroud)

但是当它命中服务器时,请求变量如下:

Request["f"]          null          string
Request["f2"]         "updateGroup" string
Request.Form.AllKeys  {string[12]}  string[]
  [0]                 "f[0]"        string
  [1]                 "f[1]"        string
  [2]                 "f[2]"        string
  [3]                 "f[3]"        string
  [4]                 "f[4]"        string
  [5]                 "f[5]"        string
  [6]                 "f[6]"        string
  [7]                 "f[7]"        string
  [8]                 "f[8]"        string
  [9]                 "f[9]"        string
  [10]                "f[10]"       string
  [11]                "f2"          string
Run Code Online (Sandbox Code Playgroud)

哪里Request["f[0]"]包含"u"

有人可以解释为什么会这样吗?

javascript jquery

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

在尝试返回元组时,对象必须实现IConvertible

在运行时,我收到以下错误

"对象必须实现IConvertible"

调用功能

lboxBuildingType.SelectedIndex = pharse.returning<int>xdoc.Root.Element("BuildingTypeIndex").Value);

public static T returning<T>(object o)
{
       Tuple<bool, T, object> tmp;
       switch (Type.GetTypeCode(typeof(T)))
       {
        ////blah blah blah
           case TypeCode.Int32:
              tmp= (Tuple<bool,T,object>)Convert.ChangeType(I(o.ToString())), typeof(T)); // error
              break;
        ////blah blah blah
       }
}

private static Tuple<bool, Int32, Object> I(object o)
{
      int i;
      bool b;
      Int32.TryParse(o.ToString(), out i);
      b = (i == 0);
      return new Tuple<bool, Int32, object>(b, i, o);
}
Run Code Online (Sandbox Code Playgroud)

码的目的是在通过<T>("15")并使其产生tuple<Bool,T,object>这将是tuple<true, 15, "15">

它出错了我用//错误标记的地方

c#

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