草庐IT

STANDARD_OUT

全部标签

c# - 从单元测试中获取发送到 Console.Out 的输出?

我正在使用NUnit在C#中构建单元测试,我想测试主程序是否根据命令行参数实际输出正确的输出。有没有一种方法可以从调用Program.Main(...)的NUnit测试方法中获取写入Console.Out的所有内容和Console.Error以便我可以验证它? 最佳答案 您可以重定向Console.In,Console.Out和Console.Error自定义StringWriters,像这样[TestMethod]publicvoidValidateConsoleOutput(){using(StringWritersw=newS

c# - .Net Core、Portable、Standard、Compact、UWP 和 PCL 之间的区别?

我听说过.Net核心.Net便携版.Net标准.NetCompact通用Windows平台可移植类库所有这些都向我解释为“允许您针对多个平台的完整.Net的一个子集”。所以我的问题是有什么区别!?如果我想编写一个可供尽可能多的受众使用的库,我需要使用其中的哪一个(或多个)?(我的具体情况:我的alibrary以.Net2.0、.Net4.5和UWP为目标。以UWP为目标需要创建一个新的VS项目并链接所有现有文件,这是一个巨大的痛苦。现在有人告诉我它对PCL不起作用,从它的声音来看我必须再次为.NetStandard做它!?) 最佳答案

C# 如何将流重定向到控制台 Out?

我找到了很多如何将控制台输出重定向到文件中的示例。但是,我需要一个相反的解决方案-我有StreamWriter,我希望它在我执行sw.WriteLine("text");后显示在控制台输出中 最佳答案 只需将流指向标准输出:sw=newStreamWriter(Console.OpenStandardOutput());sw.AutoFlush=true;Console.SetOut(sw); 关于C#如何将流重定向到控制台Out?,我们在StackOverflow上找到一个类似的问题:

postgresql - Docker 错误 : standard_init_linux. go:185: exec 用户进程导致 "no such file or directory"

我正在尝试将我的elixir-phoenix应用程序与postgresql数据库一起设置为与Docker一起运行。这就是我的Dockerfile的样子:#./Dockerfile#StartingfromtheofficialElixir1.5.2image:#https://hub.docker.com/_/elixir/FROMelixir:1.5.2ENVDEBIAN_FRONTEND=noninteractive#InstallhexRUNmixlocal.hex#InstallrebarRUNmixlocal.rebar#InstallthePhoenixframeworki

postgresql - Docker 错误 : standard_init_linux. go:185: exec 用户进程导致 "no such file or directory"

我正在尝试将我的elixir-phoenix应用程序与postgresql数据库一起设置为与Docker一起运行。这就是我的Dockerfile的样子:#./Dockerfile#StartingfromtheofficialElixir1.5.2image:#https://hub.docker.com/_/elixir/FROMelixir:1.5.2ENVDEBIAN_FRONTEND=noninteractive#InstallhexRUNmixlocal.hex#InstallrebarRUNmixlocal.rebar#InstallthePhoenixframeworki

c# - C#中有 "try to lock, skip if timed out"操作吗?

我需要尝试锁定一个对象,如果它已经被锁定就继续(超时后,或者没有它)。C#lock语句是阻塞的。 最佳答案 Ed为您提供了合适的功能。只是不要忘记调用Monitor.Exit()。您应该使用try-finallyblock来保证正确清理。if(Monitor.TryEnter(someObject)){try{//useobject}finally{Monitor.Exit(someObject);}} 关于c#-C#中有"trytolock,skipiftimedout"操作吗?,我们

c# - Parallel.ForEach 可以导致 "Out Of Memory"异常,如果使用可枚举的大对象

我正在尝试将图像存储在数据库中的数据库迁移到数据库中指向硬盘驱动器上文件的记录。我正在尝试使用Parallel.ForEach加快进程usingthismethod查询出数据。但是,我注意到我得到了一个OutOfMemory异常(exception)。我知道Parallel.ForEach将查询一批可枚举以减轻开销成本,如果有一个用于间隔查询(因此如果您一次执行一堆查询而不是将它们间隔开,您的源更有可能将下一条记录缓存在内存中).问题是由于我返回的记录之一是一个1-4Mb字节数组,缓存导致整个地址空间用完(该程序必须在x86模式下运行,因为目标平台将是32位机)是否有任何方法可以禁用缓

C# : Out of Memory exception

今天我的应用程序抛出了一个OutOfMemoryException。对我来说,这几乎是不可能的,因为我有4GBRAM和大量虚拟内存。当我尝试将现有集合添加到新列表时发生错误。ListvList=newList(selectedVehicles);据我所知,这里没有分配太多内存,因为我的新列表应该包含的车辆已经存在于内存中。我不得不承认Vehicle是一个非常复杂的类,我试图一次将大约50.000个项目添加到新列表中。但是由于应用程序中的所有Vehicle来自一个只有200MB大小的数据库,所以此时我不知道是什么导致了OutOfMemoryException。

C#7 : Underscore ( _ ) & Star ( * ) in Out variable

我正在阅读C#7中新的输出变量功能here.我有两个问题:它说Weallow"discards"asoutparametersaswell,intheformofa_,toletyouignoreoutparametersyoudon’tcareabout:p.GetCoordinates(outvarx,out_);//Ionlycareaboutx问:我想这只是一个信息,而不是C#7的新功能,因为我们也可以在C#7.0之前的版本中这样做:var_;if(Int.TryParse(str,out_))...还是我在这里遗漏了什么?当我按照同一博客中提到的那样操作时,我的代码会出错:~

c# - 属性或索引器不能作为 out 或 ref 参数传递

我收到上述错误并且无法解决。我用谷歌搜索了一下,但无法摆脱它。场景:我有一个BudgetAllocate类,它的属性是budget,它是double类型。在我的dataAccessLayer中,在我的一个类(class)中,我正在尝试这样做:double.TryParse(objReader[i].ToString(),outbd.Budget);这是抛出这个错误:Propertyorindexermaynotbepassedasanoutorrefparameteratcompiletime.我什至试过这个:double.TryParse(objReader[i].ToString(