小编Ant*_* C.的帖子

C#闭包对内存有什么影响?

我有一个类Test,它包含两个成员,一个(arr)占用大量内存,另一个(b)不占用:

public class Test
{
    public Test() {
        Arr = new int[100000000];
    }
    public bool B {get; private set;}
    public int[] Arr {get; private set;}
} 
Run Code Online (Sandbox Code Playgroud)

稍后在我的代码中,我想以这种方式存储lambda表达式:

// `test` has been declared somewhere as an instance of Test
Action lambda = () => {
    if (test.B)
        // Do things
}
Run Code Online (Sandbox Code Playgroud)

这个闭包的内存消耗是多少?

它会将整个Test物体保持在其环境中,还是只保留Test.b

我应该这样做:

var tmpB = test.B;
Action lambda = () => {
    if (tmpB)
        // Do things …
Run Code Online (Sandbox Code Playgroud)

c# lambda closures

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

ASP.NET Razor页面-条件重定向

在我的一个EF实体中,我有一个布尔字段,指示是否要进行维护。

因此,仅当此布尔值设置为true时,我才想将所有页面重新路由到503错误页面。

我可以在每个页面中放入以下代码:

if (_context.SystemParameters.First().Maintenance)
    return Redirect("/Error/503");
Run Code Online (Sandbox Code Playgroud)

但这根本不是一件容易的事。是否有最好的方法可以在我的所有页面上实现这种条件重定向?

c# asp.net-core asp.net-core-2.0 razor-pages

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

用grep在一行中捕获正则表达式

在bash中,sensors我计算机上的输出如下:

Adapter: ISA adapter
Physical id 0:  +67.0°C  (high = +84.0°C, crit = +100.0°C)
Core 0:         +65.0°C  (high = +84.0°C, crit = +100.0°C)
Core 1:         +65.0°C  (high = +84.0°C, crit = +100.0°C)
Core 2:         +65.0°C  (high = +84.0°C, crit = +100.0°C)
Core 3:         +67.0°C  (high = +84.0°C, crit = +100.0°C)
Run Code Online (Sandbox Code Playgroud)

我需要在一行中捕获bash,即物理id 0之后的温度,以及它的单位.

所以在这里,我希望命令完全返回67.0°C.

我试图连锁grep命令,这是我的尝试

sensors | grep -oEi "id[^C]+C" | grep -oEi "[\d.]+°C"
Run Code Online (Sandbox Code Playgroud)

因为使用grep似乎不可能进行分组,所以第一组用于捕获id 0: +67.0°C,第二组用于捕获,第二组用于捕获67.0°C. …

regex bash grep

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

CSS 背景:重复线性渐变的偏移量

<div>在 SASS 中绘制了一个网格作为以下方式的重复背景:

background-image:
  repeating-linear-gradient(0deg, $major-grid-color, $major-grid-color $major-grid-weight, transparent $major-grid-weight, transparent $major-grid-size),
  repeating-linear-gradient(-90deg, $major-grid-color, $major-grid-color $major-grid-weight, transparent $major-grid-weight, transparent $major-grid-size),
  repeating-linear-gradient(0deg, $minor-grid-color, $minor-grid-color $minor-grid-weight, transparent $minor-grid-weight, transparent $minor-grid-size),
  repeating-linear-gradient(-90deg, $minor-grid-color, $minor-grid-color $minor-grid-weight, transparent $minor-grid-weight, transparent $minor-grid-size);
Run Code Online (Sandbox Code Playgroud)

它呈现以下方式:

坏的

但我希望它以15px向左偏移(或4 * $minor-grid-size + 15px向右偏移)呈现,即:

在此处输入图片说明

现在我不能使用margin-left,因为它也会偏移<div>标签内部的元素,我不想要那样,请参阅此处的 Fiddle(不要关注 JS)。

我只希望背景有一个偏移量。

css sass repeating-linear-gradient

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