草庐IT

外参数

全部标签

c# - 如何使用 CSI.exe 脚本参数

当你运行csi.exe/?(安装了VisualStudio2015更新2),您将获得以下语法Microsoft(R)VisualC#InteractiveCompilerversion1.2.0.51106Copyright(C)MicrosoftCorporation.Allrightsreserved.Usage:csi[option]...[script-file.csx][script-argument]...我只是想知道如何将此[script-argument]传递到我的csx脚本文件中。比方说,我的csx脚本(c:\temp\a.csx)只有2行如下usingSystem;

c# - 尝试利用通用参数的组合

这很令人困惑,因为我遇到了看似矛盾的错误。我正在使用泛型,约束T至Something,然后约束U至AnOperation.我期望一个对象AnOperation从现在开始考虑类型U.但是,我遇到了错误:Cannotimplicitlyconverttype'ConsoleApp1.AnOperation'to'U'这很奇怪。好吧,我尝试将其显式转换为U,然后出现此错误:Cannotconverttype'ConsoleApp1.AnOperation'to'U'其中还说明了CastisredundantnamespaceConsoleApp1{classProgram{staticvoi

c# - GDI+ System.Drawing.Bitmap 间歇性地给出错误参数无效

我在ASP.Net应用程序中有一些C#代码可以执行此操作:位图bmp=新位图(1184,1900);偶尔会抛出异常“参数无效”。现在我一直在谷歌搜索,显然GDI+因抛出随机异常而臭名昭著,很多人都遇到过这个问题,但没有人能解决它!我检查了系统,它有足够的RAM和交换空间。现在在过去,如果我执行“iisreset”,那么问题就会消失,但几天后又会出现。但我不相信我造成了内存泄漏,因为正如我上面所说,有大量的ram+swap空闲。谁有解决办法? 最佳答案 停止使用GDI+并开始使用WPF成像类(.NET3.0)。这些是GDI+类的主要清

c# - 在 .NET 中如何命名这些相关的属性、类、参数和字段?

我经常发现我想在C#中编写类似这样的代码,但我对标识符名称感到不舒服:publicclassCar{privateEngineengine;publicEngineEngine{get{returnengine;}set{engine=value;}}publicCar(Engineengine){this.engine=engine;}}这里我们有四种不同的东西叫做“引擎”:Engine类。引擎似乎是一个很好、自然的名字。Engine公共(public)属性。将其称为MyEngine或TheCarsEngine似乎很愚蠢。engine支持属性的私有(private)字段。一些命名方案

c# - PropertyInfo.GetValue() - 如何在 C# 中使用反射索引通用参数?

这个(缩短的)代码..for(inti=0;i..抛出“TargetParameterCountException:参数计数不匹配”异常。'propertyInfo'的基础类型是一些T的集合。'count'是集合中的项目数。我需要遍历集合并对obj执行操作。感谢您的建议。 最佳答案 反射一次只在一个层面上起作用。您正在尝试对属性进行索引,这是错误的。相反,读取属性的值,以及您返回的对象,即您需要索引的对象。这是一个例子:usingSystem;usingSystem.Collections.Generic;usingSystem.R

c# - 事件参数; "sender as Object"或 "sender as T"?

当我为我的业务对象编写公共(public)事件时,除了额外的特定参数外,我已经习惯了始终将实例作为“发送者作为对象”传递。我现在只是问自己为什么我不指定类?所以对于有更多经验的你;您是否曾经在事件中作为发件人传递不同的类别?如果是这样,您的决策标准是什么时候可以/不可以? 最佳答案 不要太极端。EventHandler(objectsender,EventArgse)有一个对象发送器,所以我们可以在很多情况下使用它。但这并不意味着强类型发件人是邪恶的。当此委托(delegate)不会被广泛使用(如EventHandler)时,强类型

c# - 限制每个方法的参数数量?

假设参数都是同一类型,关于方法的参数数量是否有经验法则?我只是想知道我应该在哪里画线以及我的替代方案是什么(即接口(interface)、数组等)。 最佳答案 SteveMcConnell在CodeComplete中解决了这个问题,引用的研究表明,人们实际上一次无法处理超过七block信息,因此在可行的情况下,七block是常识性限制。在那一节的最后一段(第二版第178页),他写道:Ifyoufindyourselfconsistentlypassingmorethanafewarguments,thecouplingamongyo

c# - 是否可以使用派生参数而不是基本参数来覆盖方法?

我陷入了这种情况:我有一个名为Ammo的抽象类,其中有AmmoBox和Clip作为子类。我有一个名为Weapon的抽象类,Firearm和Melee作为子类。Firearm是抽象的,ClipWeapon和ShellWeapon作为子项。在Firearm里面,有一个voidReload(Ammoammo);问题是,ClipWeapon可以同时使用Clip和AmmoBox来装弹:publicoverridevoidReload(Ammoammo){if(ammoisClip){SwapClips(ammoasClip);}elseif(ammoisAmmoBox){varammoBox=a

c# - 将任务作为参数传递

我不确定这是否可行,所以我在这里:我有一系列Action可以执行多个asyncTaskMethodA(...){//somecode//acalltospecificAsyncIOboundmethod//somecode}还有MethodB()、MethodC()等,除了调用特定的AsyncIO绑定(bind)方法外,它们的代码完全相同.我正在尝试找到一种将任务指针传递给方法的方法,以便我们稍后可以在Method()中执行它。我目前正在做的是:privateasyncTaskMethod(Func>func){//somecodevara=awaittask.Run(func);//

c# - 通用方法和可选参数

是否可以写出类似的结构?我想以某种方式为类型T的参数设置默认值。privateTGetNumericVal(stringsColName,TdefVal=0){stringsVal=GetStrVal(sColName);TnRes;if(!T.TryParse(sVal,outnRes))returndefVal;returnnRes;}此外,我还找到了以下链接:GenerictypeconversionFROMstring我想,这段代码一定可以工作privateTGetNumericVal(stringsColName,TdefVal=default(T))whereT:IConv