小编Dzm*_*voi的帖子

powershell max/first/aggregate函数

首先,我是.NET开发人员和LOVE LINQ以及C#中的扩展方法.但是当我编写脚本时,我需要与Enumerable扩展方法等效的东西

任何人都可以在Powershell中给我任何建议/解释如何在这种情况下工作的最佳实践.例如,假设我想从数组中获取max元素:

$arr = @(2, 1, 3)
$max = $arr.MAX() #?? what should i do in this case?
Run Code Online (Sandbox Code Playgroud)

powershell

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

不安全的字符串指针语句

据我所知,根据MSDN C#fixed语句应该像:

fixed (char* p = str) ... // equivalent to p = &str[0]
Run Code Online (Sandbox Code Playgroud)

所以,为什么我不能这样做?

    const string str = "1234";
    fixed (char* c = &str[0])
    {
/// .....
    }
Run Code Online (Sandbox Code Playgroud)

str[1]作为一个例子,我怎样才能得到指针?

.net c# unsafe fixed-statement

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

如何从f#中的表达式返回单位

我如何unit从f#中的表达式返回?例如:

let readInt =
        let str = Console.ReadLine()
        let (succ, num) = Int32.TryParse(str)
        match succ with
        | true -> Some(num)
        | _ -> None

    match readInt with
    | Some(v) -> Console.WriteLine(v)
    | None -> ignore //i don't want to do anything,
//     but i don't know how to ignore this brunch of the expression
Run Code Online (Sandbox Code Playgroud)

f# unit-type

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

AWS CDK 跨堆栈引用和部署顺序

克服AWS CDK中的循环依赖问题的方法是什么:假设我有一个用于ECS集群的堆栈和一个用于ECS服务的堆栈(其中几个):

export class EcsClusterStack extends cdk.Stack {
    public readonly cluster: ecs.Cluster
    ...
}
Run Code Online (Sandbox Code Playgroud)

export class EcsServiceStack extends cdk.Stack {
    constructor(scope: cdk.Construct, id: string, cluster: ecs.ICluster) { }
}
Run Code Online (Sandbox Code Playgroud)

现在,我可以编写我的应用程序:

const app = new cdk.App();
const vpc = new VpcStack(app,  'vpc');
const cluster = new ClusterStack(app, 'ecs', vpc.vpc);

const service = new EcsServiceStack(app, 'ecs-service', cluster.cluster);
Run Code Online (Sandbox Code Playgroud)

假设之后,我想将我的 ECS 服务从一个集群迁移到另一个集群。我会创建另一个 ECS 集群堆栈并将其传递给 ECS 服务,但事情是:AWS CDK 自动生成输出(在集群堆栈中有集群名称等输出),然后,当我想将 ECS 服务迁移到另一个集群,如果我将另一个 ICluster 对象传递给 ECS 服务堆栈构造函数,AWS CDK 会尝试从我之前的集群定义中删除输出/导出,这显然会在部署时失败,因为它无法从集群堆栈中删除导出,直到有服务依赖它。最后,我看到一个错误,如下所示:

0 | 7:15:19 PM | UPDATE_IN_PROGRESS   | …
Run Code Online (Sandbox Code Playgroud)

aws-cdk

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

nunit测试工作目录

我有以下代码(sample1.evol - 附加到我的单元测试项目的文件):

[Test]
public void LexicalTest1()
{
     var codePath = Path.GetFullPath(@"\EvolutionSamples\sample1.evol");
     //.....
}
Run Code Online (Sandbox Code Playgroud)

我发现测试执行的工作目录不是汇编目录:(在我的情况下,代码路径变量分配给d:\EvolutionSamples\sample1.evol).

那么,如何更改执行工作目录(没有硬编码)?加载附加到测试用例的任何文件的最佳做法是什么?

c# nunit

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

管道运营商问题

我想用管道编写下一个函数:

A = 1/Sum[1-k](x^2)
Run Code Online (Sandbox Code Playgroud)

所以当我写:

//Adaptive step
let a_Adaptive x =
    x
    |> Array.map (fun x -> x ** 2.0)
    |> Array.sum
    |> (**) -1.0
Run Code Online (Sandbox Code Playgroud)

f#解释(**)为多行注释,但我想将它用作函数.有什么建议?

.net f#

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

IoC容器映射:单例与每次调用创建

让我们假设我们有一个非常简单的IConfiguration接口,负责返回正确的连接字符串

interface IConfiguration
{
   string ConnectionString {get;}
}
Run Code Online (Sandbox Code Playgroud)

并且假设只能使用实现此类接口的类型的一个实例(因为它只返回一个字符串,而不是管理一个状态等)

因此,至少有两种方式可以在容器中注册接口:通常 - 每个类型请求的新对象,或者作为单个 - 所有类型请求的一个对象.方法之间是否存在差异(可能是性能原因,终身管理技巧等)

container.For<IConfiguration>().Use<ConfigurationImpl>();
Run Code Online (Sandbox Code Playgroud)

VS

container.For<IConfiguration>().Singleton().Use<ConfigurationImpl>();
Run Code Online (Sandbox Code Playgroud)

c# design-patterns dependency-injection ioc-container

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

如果快速单击多次,ChildWindow关闭按钮事件处理程序将执行多次

ChildWindow已将CloseButton和处理程序分配给Click事件.代码(仅举例):

声明关闭按钮:

<Button x:Name="CloseButton" Click="OnCloseButtonClick" />
Run Code Online (Sandbox Code Playgroud)

专用计数器(用于诊断问题):

private uint _i;
Run Code Online (Sandbox Code Playgroud)

关闭事件处理程序

OnCloseButtonClick(object sender, RoutedEventArgs e)
{
     DialogResult = true;
     System.Diagnostics.Debug(_i++);
}
Run Code Online (Sandbox Code Playgroud)

快速点击程序后可以输出"1","2","3"等...正如我所知,在设置DialogResult= true(或false)之后,应该关闭ChildWindow并且不应该有任何方法来提升CloseButton的Click事件第二次.

任何人都可以帮助我找出问题的原因并帮助解决它没有bool标志(执行/!执行)?

.net c# silverlight event-handling

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

post-build powershell脚本

我有以下post-build事件:

powershell Set-ExecutionPolicy Unrestricted
powershell -file "$(SolutionDir)Obfuscation\_obfuscate.ps1" "$(SolutionDir)" "$(ProjectDir)"
powershell Set-ExecutionPolicy Restricted
Run Code Online (Sandbox Code Playgroud)

和PS脚本开头:

param
(   
    [string]$slnDir,
    [string]$projectDir
)
Run Code Online (Sandbox Code Playgroud)

当MSBuild试图运行它时,我的第一个参数"$(SolutionDir)"被分成两个参数,因为解决方案路径包含一个空格字符:D:\Projects\Dion2 Mercurial\repo\Dion2Web\.所以我的脚本D:\Projects\Dion2作为第一个参数和Mercurial\repo\Dion2Web\第二个参数接收.

将这些参数发送到脚本文件的正确方法是什么?

注意:当脚本只有一个参数时,这样的构建后脚本可以正常工作.

c# powershell building post-build-event visual-studio

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

从 PixelFormat 获取像素长度

如何从PixelFormat枚举中获取像素长度(以字节为单位)?我想使用本机方法处理图像像素,但是如果我不知道像素的偏移量,我如何遍历图像。

代码:

let formRgbCube (image : Bitmap) =
    let width = image.Width
    let height = image.Height
    let bitmapData = image.LockBits(Rectangle(0, 0, image.Width, image.Height), ImageLockMode.ReadOnly, image.PixelFormat)
    let ptr = NativePtr.ofNativeInt<byte>(bitmapData.Scan0)
    let stride = bitmapData.Stride

    let rgbCube = Array3D.zeroCreate width height 3
    for i = 0 to width - 1 do
        for j = 0 to height - 1 do
            for k = 0 to 2 do
                rgbCube.[i, j, k] <- NativePtr.read<byte>(NativePtr.add ptr (stride * j + i * 3(*an …
Run Code Online (Sandbox Code Playgroud)

.net c# f# image-processing

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