草庐IT

STANDARD_OUT

全部标签

c# - 在方法中使用 'out' 或 'ref' 参数的正当理由是什么?

我鄙视out和ref作为方法的参数。恕我直言,它们使代码变得不那么干净,并为产生副作用提供了机会。但我承认我可能不明白它们的用处,这可能解释了我厌恶的部分原因。拜托,有人可以解释out或ref的有效案例吗? 最佳答案 基本上,如果您需要返回多个值,可以使用类似Tuple的替代方法或用于封装值的自定义类型。典型的例子可能是int.TryParse及相关方法。他们想传回两条信息:解析值是否解析成功。现在这些可以实际上是使用返回类型int?编写的在这种情况下等等,但对于其他情况也是一样的原则。(例如Dictionary.TryGetVal

c# - 从 Windows 类库引用 .NET Standard 库

目前我的解决方案中有两个项目:Windows类库(针对.NETFramework4.6.1)和另一个针对.NETStandard1.3的类库。我正在使用VisualStudio2015Update3。我已经从另一个项目添加了对.NETStandard项目的引用,它出现在引用列表中,但是当我想使用它们时,我看不到引用库中的任何类或命名空间(即使引用的库已成功构建并且没有错误)。这是.NETStandard库项目的project.json:{"version":"1.0.0-*","dependencies":{"NETStandard.Library":"1.6.0"},"framewo

c# - "The .NET framework uses the UTF-16 encoding standard by default"是什么意思?

我的学习指南(针对70-536考试)在IO章节之后的文本和编码章节中提到了两次。到目前为止的所有示例都是使用FileStream和StreamWriter进行简单的文件访问。它还说了诸如“如果您在创建文件时不知道要使用哪种编码,请不要指定编码,.NET将使用UTF16”和“使用Stream构造函数重载指定不同的编码”之类的内容。不要在意实际的重载是在StreamWriter类上的事实,但是嘿,无论如何。我现在正在反射器中查看StreamWriter,我确信我可以看到默认值实际上是UTF8NoBOM。但是这些都没有列在勘误表中。这是一本旧书(检查了两个版本的错误)所以如果它是错误的我会认

C# 新手 : find out the index in a foreach block

我有一个foreachblock,为了跟踪调试目的,我想在其中绘制foreach内步骤的索引。作为C#新手,我按如下方式操作:inti=1;foreach(xiny){...dosomething...WriteDebug("Step:"+i.ToString());i++;}我想知道是否有任何方法可以在不为此明确创建变量的情况下获取当前步骤索引的值。编辑:为了澄清,我显然熟悉for循环的选项,但它不是我正在经历的数组,而是无序集合。编号的原因只是为了显示调试级别的进度,没有别的。 最佳答案 与其他一些答案相反,我非常乐意混合for

c# - 使用自定义 header : This OperationContextScope is being disposed out of order 的异步 WCF 客户端调用

我正在从WinRT应用调用WCF服务。该服务要求为身份验证设置一些header。问题是,如果我同时对该服务进行多次调用,我会得到以下异常:此OperationContextScope被乱序处置。当前代码如下所示:publicasyncTaskCallServerAsync(){varaddress=newEndpointAddress(url);varclient=newAdminServiceClient(endpointConfig,address);using(newOperationContextScope(client.InnerChannel)){OperationCont

C# 为什么部分方法可以使用 ref,但不能使用 out?

非常简单。MSDN声明您可以使用ref,但不能使用部分方法。我很好奇为什么?据我了解,当代码被编译时,部分被合并,那么限制是什么?partial除了让代码文件更清晰、更有条理(即养眼)之外,还有更多的东西吗?引用:MSDNArticle-“部分方法可以有ref但不能有out参数。” 最佳答案 您必须考虑如果未实现分部方法会发生什么情况。然后发生的是所有对该方法的调用都被删除,就好像它们从未发生过一样。所以对于使用out的方法,它看起来像这样:streams;GetStream(outs);s.Write(...);并被编译成这样:s

如果你还不懂区块链那就out了(三)--区块链3.0的优秀解决方案:Hyperledger fabric

前面我们提到,在区块链3.0中,已经发展出了智能合约+私有链的形式,而目前这种形式应用最广泛的就是今天要说的:Hyperledgerfabric。一、Hyperledgerfabric介绍HyperledgerFabric,是一个基于模块化架构的分布式账本解决方案平台,它是由IBM带头发起的一个联盟链项目,于15年底移交给Linux基金会,成为开源项目。Hyperledger基金会的成员有很多大牌,诸如IBM,Intel,思科等。基金会里孵化了很多区块链项目,Fabric是其中最出名的一个,一般我们说超级账本(Hyperledger)基本上指的都是Fabric。Hyperledgerfabri

c# - Generic 类型参数前的 "out"是什么意思?

我刚刚在寻找GroupBy返回类型时看到了一个不熟悉的语法:publicinterfaceIGrouping:IEnumerableMSDNSource我知道out在方法中是什么意思,但在泛型接口(interface)中不知道。out在泛型中是什么意思? 最佳答案 它表示一个covariant范围。另见关于MSDN的描述.本质上它说,IGrouping可以看作是IGrouping,因此你可以IGroupinggr=MakeGrouping(...);IGroupinggrBase=gr;如果Aderived是从Abase派生的接口(

c# - 如何使 Moq 忽略 ref 或 out 的参数

在RhinoMocks中,您可以将模拟作为一揽子声明告知IgnoreArguments。在Moq中,您似乎必须为每个参数指定It.IsAny()。但是,这不适用于ref和out参数。如何在需要最小化内部服务调用以返回特定结果的地方测试以下方法:publicvoidMyMethod(){//DoStuffIListerrors=newList();varresult=_service.DoSomething(referrors,refparam1,param2);//Domorestuff}测试方法:publicvoidTestOfMyMethod(){//SetupvarmoqServ

c# - 尝试在 .Net Standard 项目中设置 Entity Framework 核心

我想知道我是否可以轻松地在.NETStandard2.0项目中设置我的EntityFrameworkCore。我在关注这个Tutorial但它需要.NETCore或Framework。当我走到这一步时:Scaffold-DbContext"Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;"Microsoft.EntityFrameworkCore.SqlServer-OutputDirModels我得到了这个错误:Startupproject'projectName'targetsframe