小编Ily*_*kov的帖子

LINQ的Func <bool>只被调用一次?

我迷失了谷歌的关键词...有谁可以请我指向一个MSDN页面或SO答案解释为什么Foo()只被调用一次?特别是因为First只有一个带谓词的重载.这里有什么优化?

using System;
using System.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var foo = "Foo".First(Foo().Contains); // x 1
            var bar = "Bar".First(c => Bar().Contains(c)); // x 3
            var baz = "Baz".First(c => { return Baz().Contains(c); }); // x 3

            Console.ReadLine();
        }

        private static string Foo()
        {
            Console.WriteLine("Foo");
            return "__o";
        }

        private static string Bar()
        {
            Console.WriteLine("Bar");
            return "__r";
        }

        private static string Baz()
        {
            Console.WriteLine("Baz");
            return "__z";
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑: …

c# linq

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

.Extract上的DotNetZip BadReadException

我有一个奇怪的文件,当用DotNetZip压缩时创建一个'ununzipable'存档.当我尝试用7zip解压缩时,它会失败,CRC failed in 'AjaxControlToolkit.dll'. File is broken.当我用7zip手动拉链时,它会解压缩.

有没有人遇到DotNetZip无法正确压缩简单二进制文件的情况?或者我错误地使用DotNetZip?

https://dl.dropbox.com/u/65419748/AjaxControlToolkit.dll

using System.IO;
using Ionic.Zip;

namespace ConsoleApplication1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var source = new FileInfo(@"C:\ZipDemo\AjaxControlToolkit.dll");
            var target = new FileInfo(Path.ChangeExtension(source.FullName, "zip"));
            var folder = new DirectoryInfo(Path.ChangeExtension(source.FullName, null));

            if (target.Exists)
                target.Delete();

            if (folder.Exists)
                folder.Delete(true);

            using (var zip = new ZipFile(target.FullName))
            {
                zip.AddFile(source.FullName, string.Empty);
                zip.Save();
            }

            using (var zip = new ZipFile(target.FullName))
                zip.ExtractAll(folder.FullName);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

抛出:

Unhandled Exception: Ionic.Zip.BadReadException: bad read of entry …
Run Code Online (Sandbox Code Playgroud)

c# dotnetzip

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

IntelliJ中的Java getter和setter是否有语法高亮?

是否有一种设置可以使Java getter和setter的颜色与IntelliJ中的普通方法不同?类似于Structure窗口具有Show Properties切换以分别对它们进行分组.甚至可能会去除了强调getset部分像下面的粗略模型.

在此输入图像描述

java syntax-highlighting intellij-idea

16
推荐指数
0
解决办法
458
查看次数

关于Java lambda等式和/或实例化

为什么下面的片段在第二次传递时打印为真?它应该不是一个新的实例吗?

import java.util.function.Supplier;

public class Foo {
    public static void main(String[] args) throws Exception {
        Supplier<Long> old = () -> System.nanoTime();

        for (int i = 0; i < 3; i++) {
            /* false true true
            Supplier<Long> foo = System::nanoTime;*/

            Supplier<Long> foo = () -> System.nanoTime();

            /* false false false
            Supplier<Long> foo = new Supplier<Long>() {
                @Override
                public Long get() {
                    return System.nanoTime();
                }
            };
            //*/

            System.out.printf("%s %s %s%n", foo == old, foo, old);

            old = foo;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

false …
Run Code Online (Sandbox Code Playgroud)

java lambda java-8

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

猴子修补XMLHttpRequest.prototype.open和"触摸"参数

我正在尝试为XMLHttpRequest.prototype.open在IE8兼容模式下运行的Intranet站点添加补丁程序,但它一直在投掷SCRIPT438: Object doesn't support this property or method.奇怪的是......如果我"触摸"第arguments一个,即取消注释bar,它就可以正常工作!有谁知道为什么,如果触摸它确实解决了100%的情况下的问题?

var foo = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function() {
  //var bar = arguments;
  foo.apply(this, arguments);
  console.log("OK");
}
Run Code Online (Sandbox Code Playgroud)

这是在IE8模式中的IE9现代.用VM图像搜索的VM截图试图open在滚动时修补猴子的请求.

在此输入图像描述

编辑:

console.log(foo);
//console.log(foo.apply);
console.log(typeof foo);
console.log(foo instanceof Function);
Run Code Online (Sandbox Code Playgroud)

返回

LOG: 
function open() {
    [native code]
}

LOG: object 
LOG: false  
Run Code Online (Sandbox Code Playgroud)

console.log(foo.apply)一个抛出"Object doesn't support this property or method".

有趣的是,我无法在我试过的任何模式下在实际的IE8虚拟机中复制这个,只能在运行IE8标准模式的IE9中.

javascript internet-explorer monkeypatching xmlhttprequest

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

在没有XSD的情况下共享WSDL类型

我似乎无法找到从具有共享类型的WSDL生成代理但没有任何XSD与它们一起生成代理的示例.任何人都可以将此标记为重复,请指出一个例子吗?

这里有2个服务,每个服务都有自己的命名空间和通用类型.唯一可公开访问的是它们的WSDL,没有类型的XSD或它的.dll传递给wsdl.exe /sharedtypessvcutils没有它我最终得到相同的class Foo我无法传递给SetFooclass Foo1.

我能想到的最好的方法是以编程方式生成代理并通过CodeDOM检测重复,忽略DataContract/ WebServiceBinding命名空间,但这是一个巨大的混乱......

[WebService(Namespace = "http://tempuri.org/FOO1")]
public class Service1 : WebService
{
    [WebMethod]
    public Foo GetFoo()
    {
        return new Foo();
    }
}

[WebService(Namespace = "http://tempuri.org/FOO2")]
public class Service2 : WebService
{
    [WebMethod]
    public void SetFoo(Foo foo)
    {
    }
}

public class Foo
{
    public int Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

c# wcf xsd wsdl web-services

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

git pull --rebase upstream&git push origin拒绝非快进?

我已经为github上的公司项目实现了经典的OSS维护者/贡献者git工作流,但是一个边缘案例产生了一些奇怪的结果,我不知道如何解决.

让我们说有一个典型的项目,我分叉并添加上游远程,以使其保持最新.

git clone git@github.com:kozhevnikov/<project>.git
git remote add upstream git@github.com:<company>/<project>.git
Run Code Online (Sandbox Code Playgroud)

出于这个例子的目的,这个fork后面有几个提交.

git reset --hard HEAD~5 && git push --force
Run Code Online (Sandbox Code Playgroud)

我在这个fork上工作并推送一些提交,然后再推送我的最后一次提交并创建一个pull请求我更新我的fork的克隆以确保没有冲突.

touch foo && git add foo && git commit -m foo && git push
touch bar && git add bar && git commit -m bar

git pull --rebase upstream master

From github.com:<company>/<project>
 * branch            master     -> FETCH_HEAD
First, rewinding head to replay your work on top of it...
Applying: foo
Applying: bar
Run Code Online (Sandbox Code Playgroud)

现在,当我试图推到我的叉子时,我被拒绝了.

git push

To git@github.com:kozhevnikov/<project>.git
 ! [rejected]        master …
Run Code Online (Sandbox Code Playgroud)

git rebase

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

VsDevCmd vs VsMSBuildCmd

什么之间的区别VsDevCmd.bat,并VsMSBuildCmd.bat在Visual Studio 2015年(CTP 5)?

两者都位于C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools又名VS140COMNTOOLS.

msbuild visual-studio visual-studio-2015

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

生产中.NET应用程序的持续性能监控?

鉴于SOA环境中相对典型的.NET 4系统(即Windows Server 2008 R2,IIS 7上的RESTful Web服务,NServiceBus消息传递的Windows服务,SQL Server 2008 R2等),最佳实践或事实上的解决方案是什么(没有企业价格标签)用于在生产中执行24x7性能监控?

它不一定消耗多少CPU /内存/磁盘IO,而是例如每分钟创建多少createAccount()调用,generateResponse()方法获取和检测异常增量峰值的平均时间是多少,例如generateResponseStarted和generateResponseComplete(方法)被调用(反过来可以调用第三方)并且响应准备好分别返回).

经过一些谷歌搜索后,似乎选择适用于低级分析器(如dotTrace)和实现性能计数器,并使用PerfMon或其他一些OpManager类型的产品.

你会推荐什么?为实时应用程序实现性能计数器会显着降低生产系统的性能吗?如果没有,是否有任何好的库可以简化.NET中的实现?如果是,除了memory-disk-cpu之外,人们如何监控应用程序的性能?


@Ryan Hayes

谢谢,我正在寻找一种方法来查看生产系统上的异常减速或峰值.例如,在压力测试期间一切都很好,但出于某些原因,我们依赖的第三方存在一些问题,或者由于线程锁定或者SAN正在让位或任何其他意外情况导致数据库速度变慢.低级别的分析是一个过多的开销,而只有在出现问题时才开启计数器,此时为时已晚.另外,我们将丢失历史数据以与之进行比较(当delta超出可接受的阈值时,我需要某种警报系统).我想知道人们如何监控他们的生产系统的性能以及他们的经验,这是非内存/ CPU /服务器相关监控的最佳方法.

.net performance monitoring production continuous

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

.bat中的IF,CALL,EXIT和%ERRORLEVEL%

任何人都可以帮助我理解%ERRORLEVEL%变量的行为以及为什么它在一段CALL时间内没有被设置IF,即ECHO %ERRORLEVEL%.2行?

@ECHO OFF
SET ERRORLEVEL
VERIFY > NUL

ECHO %ERRORLEVEL%.0
IF ERRORLEVEL 1 ECHO SNAFU

IF %ERRORLEVEL% == 0 (
  ECHO %ERRORLEVEL%.1
  CALL :FOO
  ECHO %ERRORLEVEL%.2
  IF ERRORLEVEL 42 ECHO 42.3
)

GOTO :EOF

:FOO
  EXIT /B 42
GOTO :EOF
Run Code Online (Sandbox Code Playgroud)

STDOUT

C:\Users\Ilya.Kozhevnikov\Dropbox>foo.bat
Environment variable ERRORLEVEL not defined
0.0
0.1
0.2
42.3
Run Code Online (Sandbox Code Playgroud)

然而,如果没有IF%ERRORLEVEL%变量如预期被设定.

@ECHO OFF
SET ERRORLEVEL
VERIFY > NUL

ECHO %ERRORLEVEL%.0
IF ERRORLEVEL 1 ECHO SNAFU

REM …
Run Code Online (Sandbox Code Playgroud)

windows batch-file

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