草庐IT

外参数

全部标签

c# - C# 中具有类型参数的泛型类型

我不认为这可以在C#中完成,但发布它只是为了确保。这是我的问题。我想在C#中做这样的事情:varx=10;varl=newList();或varx=10;vart=typeof(x);varl=newList();但这当然行不通。尽管这应该不是问题,因为类型t在编译时已解析。我知道这可以通过反射来解决,但由于类型在编译时是已知的,因此使用反射就太过分了。 最佳答案 publicstaticListCreateCompatibleList(Tt){returnnewList();}varx=10;varl=CreateCompatib

c# - ref 参数有什么不好?

我遇到了一种情况,我认为只能通过使用ref参数来解决。但是,这意味着当我只需要5%的时间由ref参数提供的功能时,更改方法以始终接受ref参数。这让我觉得“哇,疯了,必须找到另一种方法”。我是不是很傻?ref参数会导致什么样的问题?编辑要求提供更多详细信息,我认为它们与我的要求并不完全相关,但我们开始吧。我想保存一个新实例(它将使用稍后可能使用的ID更新)或检索一个与某些逻辑匹配的现有实例并更新它,保存它然后将新实例的引用更改为指向现有的。代码可能会更清晰:protectedoverridevoidBeforeSave(Logentity){varnewLog=entity;varex

c#文件上传的分块传输结合访问ServiceStack中的路由参数

我正在寻找使用IRequiresRequestStream接口(interface)来启用使用ServiceStack(v3)和分块传输编码的大文件上传(视频文件)。标准文件上传似乎无法处理我们客户上传的一些较大的视频文件,因此我们希望为这些文件启用分块传输编码。我已经成功测试了分块传输编码文件上传,但是还有一些参数需要与文件一起发送。由于IRequiresRequestStream绕过ServiceStack请求对象解析器,请求对象中与Stream一起的任何其他参数显然不会被填充。作为解决方法,我可以看到以下选项:查询字符串参数,可通过this.Request.QueryString

c# - 带动态参数的动态 lambda 表达式

给定这个类publicclassFoo{publicstringName{get;set;}}这个方法(在其他一些类中)...privateFuncCompile(stringbody){ParameterExpressionprm=Expression.Parameter(typeof(Foo),"foo");LambdaExpressionexp=DynamicExpressionParser.ParseLambda(new[]{prm},typeof(string),body);return(Func)exp.Compile();}将获取lambda表达式的右侧并返回给我一个委托

c# - 覆盖方法中的默认参数值

在下面的代码中,对Method2的调用接收值为False的Value参数,即使基类根本没有为该参数声明默认值,而派生类将True声明为默认值。可以说(正如此处类似示例所做的那样:C#optionalparametersonoverriddenmethods)编译器首先使用基类的方法声明(这是真的,因为可以通过在调用Method1前加上前缀来更改此行为this.),但在这种情况下,基根本不声明默认值。对此有合理的解释吗?usingSystem;classBase{publicvirtualboolMethod1(boolValue){returntrue;}publicvirtualbo

c# - 转义 .NET 命令行参数的规范解决方案

问题:给定一个文件名和一个任意的字符串列表,是否有一种规范的方式来创建一个命令行使得Environment.GetCommandLineArgs(和C#的voidmain(String[]args)/VB的SubMain(args()AsString))会返回相同的字符串列表吗?背景:.NET将命令行拆分为参数的方式是surprisinglycomplex,例如:Ifadoublequotationmarkfollowstwooranevennumberofbackslashes,eachproceedingbackslashpairisreplacedwithonebackslash

c# - 没有参数的 WebGet 或 UriTemplate 失败

我有一个带有以下API的RESTfulWCF网络服务:[WebGet(ResponseFormat=WebMessageFormat.Json)]MyResponseContractGetFileInfo();尝试访问端点(使用SOAPUI)时,我看到以下错误消息:Theserverencounteredanerrorprocessingtherequest.Pleaseseetheservicehelppageforconstructingvalidrequeststotheservice.我将SOAPUI设置为使用GET方法调用来命中它。当我将它切换到没有正文的POST时,它失败并

c# - 如何在堆栈跟踪中获取参数值

我可以通过StackTrace使用如下方式获取有关参数的信息:catch(Exceptionex){varst=newStackTrace(ex);System.Reflection.ParameterInfopi=st.GetFrame(0).GetMethod().GetParameters().First();}我想知道如何获取参数的值。示例:如果我在堆栈跟踪中的方法是这样的:voidMyMethod(objectvalue)电话是这样的:MyMethod(10);我想得到值10。我该怎么做? 最佳答案 有两种方法。更强大的是

c# - C# lambda 表达式的参数类型推断中的歧义

我的问题是由EricLippert的thisblogpost提出的.考虑以下代码:usingSystem;classProgram{classA{}classB{}staticvoidM(Ax,By){Console.WriteLine("M(A,B)");}staticvoidCall(Actionf){f(newA());}staticvoidCall(Actionf){f(newB());}staticvoidMain(){Call(x=>Call(y=>M(x,y)));}}编译成功并打印M(A,B),因为编译器计算出x的类型和y在lambda表达式中应该是A和B分别。现在,为

c# - 具有泛型参数和抽象类的泛型

我有两个通用基类。第二个泛型类对第一个类的参数有约束。abstractclassFirstClass{...}abstractclassSecondClasswhereU:FirstClass{...}这不起作用,因为未定义FirstClass。所以我需要这样做。abstractclassFirstClass{...}abstractclassSecondClasswhereU:FirstClass{...}哪个有效。然而,这使得实现这些抽象类变得很丑陋。classSomeClass{...}classMyFirstClass:FirstClass{...}classMySecondC