我迷失了谷歌的关键词...有谁可以请我指向一个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)
编辑: …
我有一个奇怪的文件,当用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) 是否有一种设置可以使Java getter和setter的颜色与IntelliJ中的普通方法不同?类似于Structure窗口具有Show Properties切换以分别对它们进行分组.甚至可能会去除了强调get和set部分像下面的粗略模型.

为什么下面的片段在第二次传递时打印为真?它应该不是一个新的实例吗?
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) 我正在尝试为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中.
我似乎无法找到从具有共享类型的WSDL生成代理但没有任何XSD与它们一起生成代理的示例.任何人都可以将此标记为重复,请指出一个例子吗?
这里有2个服务,每个服务都有自己的命名空间和通用类型.唯一可公开访问的是它们的WSDL,没有类型的XSD或它的.dll传递给wsdl.exe /sharedtypes或svcutils没有它我最终得到相同的class Foo我无法传递给SetFoo和class 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) 我已经为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) 什么之间的区别VsDevCmd.bat,并VsMSBuildCmd.bat在Visual Studio 2015年(CTP 5)?
两者都位于C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools又名VS140COMNTOOLS.
鉴于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 /服务器相关监控的最佳方法.
任何人都可以帮助我理解%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) c# ×3
java ×2
.net ×1
batch-file ×1
continuous ×1
dotnetzip ×1
git ×1
java-8 ×1
javascript ×1
lambda ×1
linq ×1
monitoring ×1
msbuild ×1
performance ×1
production ×1
rebase ×1
wcf ×1
web-services ×1
windows ×1
wsdl ×1
xsd ×1