小编kev*_*628的帖子

插值字符串的原始类型是什么?

MSDN 文档包含有关隐式转换的部分:

var s = $"hello, {name}";
System.IFormattable s = $"Hello, {name}";
System.FormattableString s = $"Hello, {name}";
Run Code Online (Sandbox Code Playgroud)

从第一个字符串开始,原始类型的插值字符串就是string.好的,我可以理解它,但是......我意识到字符串没有实现IFormattable.所以它看起来像编译器的一些魔法类似于它对lambdas的作用.

现在猜猜这段代码的输出:

void Main()
{
    PrintMe("Hello World");
    PrintMe($"{ "Hello World"}");
}

void PrintMe(object message)
{
    Console.WriteLine("I am a " + message.GetType().FullName);
}

//void PrintMe(string message)
//{
//  Console.WriteLine("I am a string " + message.GetType().FullName);
//}

void PrintMe(IFormattable message)
{
    Console.WriteLine("I am a " + message.GetType().FullName);
}
Run Code Online (Sandbox Code Playgroud)

暗示:

我是System.String
我是System.Runtime.CompilerServices.FormattableStringFactory + ConcreteFormattableString

如果您从第二种方法中删除评论,您将获得:

我是一个字符串System.String
我是一个字符串System.String

好的
我可能不太了解重载分辨率,但是C#规范的 14.4.2 …

c# string overloading type-inference string-interpolation

29
推荐指数
2
解决办法
1593
查看次数

AWS Lambda中的HTTP请求

我是Lambdas的新手所以也许还有一些我还没有抓到的东西,但是我已经编写了一个简单的Lambda函数来向外部网站发出HTTP请求.出于某种原因,无论我使用Node http还是https模块,我都会得到一个ECONNREFUSED.

这是我的Lambda:

var http = require('http');

exports.handler = function (event, context) {
    http.get('www.google.com', function (result) {
        console.log('Success, with: ' + result.statusCode);
        context.done(null);
    }).on('error', function (err) {
        console.log('Error, with: ' + err.message);
        context.done("Failed");
    });
};
Run Code Online (Sandbox Code Playgroud)

这是日志输出:

START RequestId: request hash
2015-08-04T14:57:56.744Z    request hash                Error, with: connect ECONNREFUSED
2015-08-04T14:57:56.744Z    request hash                {"errorMessage":"Failed"}
END RequestId: request hash
Run Code Online (Sandbox Code Playgroud)

是否需要执行HTTP请求的角色权限?Lambda甚至允许普通的旧HTTP请求吗?我需要设置特殊标头吗?

任何指导表示赞赏.

amazon-web-services node.js aws-lambda

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

更改PropertyGrid中属性项的值

在下图中,"MyCars"是一个集合.如果对象的属性是集合,则在PropertyGrid中,如果选择了该项,则该值将显示为字符串"(Collection)",并带有右侧的按钮.

是否可以更改"(收集)"值?如果是这样,怎么样? 我问的原因是因为我已经为我的程序中的PropertyGrid中出现的对象实现了一个自定义UITypeEditor.到目前为止,右侧的按钮出现,但文本值与属性的显示名称相同.我想在那里出现一个不同的字符串.

示例propertygrid.

编辑:对于什么是值得的,我知道我可以覆盖PaintValue从UITypeEditor的方法,并提供一个图标,我最终可能会,如果我解决不了这个问题,这样做,但我还是想知道是否以及如何"(集合)"文本可以更改.

c# propertygrid winforms

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

c#中的goto语句是否缓慢?

我正在开发一个C#.NET应用程序,它在大型数据集上使用一些相当复杂的科学公式(平均1000万个数据点).我正在做的部分工作需要尽可能优化配方实施.

我注意到一个公式实现使用goto,这让我想知道:是否比其他流控制结构慢?

c# goto

8
推荐指数
3
解决办法
779
查看次数

当前监视器的分辨率

如何获得当前显示器的屏幕分辨率? "当前监视器",我指的是应用程序启动的那个.

我问这个的原因是因为我有两台显示器,二级显示器是1280x1024,主显示器是1680x1050.应用程序启动时,根据监视器分辨率愚蠢地设置自己的高度和宽度.当应用程序在辅助监视器上启动时,它会溢出分辨率,这看起来很奇怪.

我知道我可以更改/删除设置应用程序高度/宽度的代码,但我也很好奇如何确定应用程序显示的监视器.

对于它的价值,我不是设置自己的高度/宽度的应用程序的支持者.

c# winforms

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

正则表达式匹配结束HTML标记

我正在编写一个小的Python脚本来清理HTML文档.其工作原理是接受的标签列表保持,然后通过HTML代码解析捣毁不在我使用正则表达式做了列表的标签,我已经能够匹配打开标签和自闭的标签但不是关闭标签.

我一直在尝试匹配结束标签的模式是</(?!a)>.这对我来说似乎合乎逻辑,为什么不工作呢?本(?!a)应匹配任何不是一个锚定标记(不是"一"是可以anything--这只是一个例子).

编辑:AGG!我想正则表达式没有显示!

html python regex

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

对于选择的DOM对象,add()和appendChild()是否相同?

我正在开发一个小型Web应用程序,它可以更改选择下拉列表的内容.

我想知道appendChild()和add()是否在JavaScript中的select DOM对象上完成相同的任务?


var someSelect = document.getElementById('select-list');
var newOption = document.createElement('option');
someSelect.appendChild(newOption);
// The above is the same as the following?
someSelect.add(newOption);
Run Code Online (Sandbox Code Playgroud)

javascript select dom object

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

删除ZedGraph边缘的图形刻度线

是否可以在ZedGraph中删除图形边缘上的顶部和右侧主要和次要刻度线,同时保留底部和左侧刻度线? 在此输入图像描述

c# zedgraph winforms

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

LINQ查询两个并行数组的子集

我正在开发一个使用大量X,Y空间信息的应用程序.

给定两个并行数组,一个表示X值,另一个表示Y值,有没有办法从两个数组中选择一个子集? 通过使用x值阵列中的起始和停止值来确定子集.

这是两个并行数组的示例.

double[] xs = new double[] { 
    0.0, 0.04, 0.08, 0.12, 0.16,
    0.2, 0.24, 0.28, 0.32, 0.36,
    0.4, 0.44, 0.48, 0.52, 0.56,
    0.6, 0.64, 0.68, 0.72, 0.76,
    0.8, 0.84, 0.88, 0.92
};
double[] ys = new double[] {
    0.0152, 0.1434, 0.1647, 0.3800,
    0.7880, 0.0488, 1.0060, 0.2710,
    0.0363, 0.4321, 0.5573, 0.2192,
    0.6341, 0.5181, 0.9546, 0.8275,
    0.5567, 0.9870, 0.8895, 0.3423,
    0.6061, 0.1507, 0.7841, 0.6512
};
Run Code Online (Sandbox Code Playgroud)

假设我想要x值和y值的子集,其中x大于或等于0.1且小于或等于0.2.这样一个子集的结果应该是两个并行数组:

double[] x_subset = new double[] {
    0.12, 0.16, 0.2
};
double[] y_subset …
Run Code Online (Sandbox Code Playgroud)

c# linq

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