小编Hec*_*tor的帖子

C#Enumerable.Take默认值

从C#中的Enumerable中获取精确x值的最佳方法是什么?如果我像这样使用Enumerable .Take():

var myList = Enumerable.Range(0,10);
var result = myList.Take(20);
Run Code Online (Sandbox Code Playgroud)

结果只有10个元素.

我想用默认值填充缺少的条目.像这样的东西:

var myList = Enumerable.Range(0,10);
var result = myList.TakeOrDefault(20, default(int));  //Is there anything like this?
Run Code Online (Sandbox Code Playgroud)

在C#中是否有这样的功能,如果没有,那么实现这一目标的最佳方法是什么?

.net c# linq ienumerable take

19
推荐指数
3
解决办法
3014
查看次数

Gradle 在自定义任务中设置属性

我有一个 gradle 任务,它运行一些代码检查,通常在构建期间执行。由于此任务需要很长时间,因此我实现了一个标志,以便它不会在正常构建期间运行,但需要通过属性启用:

tasks.withType(MyTaskType) {
    //config switch "-Pcheck=true"
    enabled = project.getProperties().getOrDefault('check', false).equals('true')
}
Run Code Online (Sandbox Code Playgroud)

现在我可以通过以下方式在终端中启动它:./gradlew build -Pcheck=true

现在我还想要一个任务“buildWithCheck”,它设置此属性,然后执行构建任务。

我怎样才能做到这一点?我尝试过的:

task buildWithCheck {
  doFirst{
    project.getProperties().put('check','true')
  }
  dependsOn tasks['build']
}
Run Code Online (Sandbox Code Playgroud)

java gradle gradlew build.gradle gradle-plugin

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

奇怪的异常处理虚拟指令

在我的工作中,我必须维护一些C#项目.最初的开发人员不在了.最近我注意到一些奇怪的代码主要出现在这样的情况:

try
{
    //some Code
}
catch
{
    0.ToString();
}
Run Code Online (Sandbox Code Playgroud)

有什么0.ToString()用?大多数代码是在压力下编写的,所以我可以想到两种可能性:

  • 这是一个占位符(如//TODO),可以搜索它,知道你在哪里修复一些东西.
  • 这是为了避免在编译空catch子句时发出警告.

那还有其他用例或意义吗?这是好/坏编码风格还是练习?由于该指令不执行任何操作,它是否会对性能产生一些小的影响,或者编译器会将其删除吗?哪种方式更好

c# exception-handling

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

使用Lightswitch,Silverlight和自定义控件

我有一个包含一些数据的屏幕.在屏幕内部,我有两个自定义控件(左侧和右侧).

我需要做的是以下内容:

将数据库中的一些数据绑定到第一个Custom控件中的某些控件.(填写列表,组合框等,而不是问题)

然后用户可以在列表中选择一个条目,按下按钮 - >第二个CustomControl现在应该可见; 根据选择请求DB中的一些数据并动态创建和显示图表.

所以我知道如何构建图表并构建控件.但是如何通过代码从屏幕访问数据并从第一个CustomControl中访问另一个CustomControl?

编辑:

我发现的事情.

  1. 从屏幕访问控制

    this.FindControl("yourControl");

  2. 用控件做一些事情:

    this.FindControl("yourControl").ControlAvailable += ( (o,e) => { YourControlType myControl = e.Control as YourControlType; });

  3. 访问屏幕数据

        IContentItem dataContext = this.DataContext as IContentItem;
        IScreenObject screen = dataContext.Screen;
    
        IScreenProperty prop = screen.Details.Properties["yourProperty"];
    
        VisualCollection<yourProperty> items = prop.Value as  VisualCollection<yourProperty>;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 显示新屏幕

    Application.Current.Details.Dispatcher.BeginInvoke(() => Application.Current.ShowGraphScreen(reportItem.BlockID));

也许这会对某人有所帮助.

c# silverlight visual-studio-lightswitch

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

PHP HTTP 426 - file_get_contents 与 curl

我有一个简单的 PHP 脚本,它向外部 API 发送带有一些参数的 GET 请求,并接收一些 json 数据作为响应。

我用过file_get_contents这个,它在过去几个月里有效。

例子:

$url = 'https://example.com?param1=xxx&param2=yyy';
$data = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)

突然它停止工作,出现以下错误:

failed to open Stream: HTTP request failed!
HTTP1/1 426 Upgrade Required
Run Code Online (Sandbox Code Playgroud)

我用它替换了它cURL并且它起作用了:

function curlGet($url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 什么会导致这种行为?
  • 2种方法到底有什么区别?
  • 我应该总是使用 curl 吗?
  • 使用时有没有办法防止这个问题file_get_contents

我认为我服务器上的任何内容都没有改变。我也在本地测试了它,它有相同的问题/解决方案,所以我猜测外部服务器/API 发生了一些变化。

我正在使用 PHP7。

php curl http file-get-contents php-curl

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

ARM NEON汇编程序 - 使用和理解

我是汇编程序和NEON编程的新手.我的任务是使用NEON指令将部分算法从C转换为ARM Assembler.该算法采用int32数组,从该数组加载不同的值,执行一些位移和Xor并将结果写入另一个数组.稍后我将使用64位值的数组,但是现在我只是尝试重写代码.

C Pseudo code:

out_array[index] = shiftSome( in_array[index] ) ^ shiftSome( in_array[index] );
Run Code Online (Sandbox Code Playgroud)

以下是关于NEON指令的问题:

1.)如果我加载这样的寄存器:

vld1.32 d0, [r1]
Run Code Online (Sandbox Code Playgroud)

它会从内存加载32Bit还是2x32Bit来填充64Bit Neon D-Register?

2.)如何访问D-Register的2/4/8(i32,i16,i8)部分?

3.)我试图从数组加载不同的值与偏移量,但它似乎不起作用...我做错了什么...这是我的代码:(它是一个整数数组所以我m试图加载例如3元素,它应该具有64Bit = 8 Byte的偏移量

asm volatile(
"vld1.32 d0, [%0], #8 \n"     
"vst1.32 d0, [%1]" : : "r" (a), "r" (out): "d0", "r5");
Run Code Online (Sandbox Code Playgroud)

其中"a"是数组,"out"是指向整数的指针(用于调试).

4.)从数组加载一个值后,我需要将它移到右边,但它似乎不起作用:

vshr.u32 d0, d0, #24     // C code:   x >> 24;
Run Code Online (Sandbox Code Playgroud)

5.)是否可以只在霓虹灯寄存器中加载1个字节,这样我就不必移动/屏蔽某些东西只能得到我需要的一个字节?

6.)我需要使用内联汇编程序,但我不确定最后一行是什么:

input list : output list : what is this for?
Run Code Online (Sandbox Code Playgroud)

7.)你知道任何有关代码示例的NEON参考资料吗?

该程序应该在三星Galaxy S2,cortex-A9处理器上运行,如果这有任何区别.谢谢您的帮助.

- - - - - - - - …

assembly android arm neon armv6

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