草庐IT

外参数

全部标签

c# - 如何将多个参数传递给 C# .net 中新创建的进程?

如何在C#中将多个参数传递给新创建的进程?在传递多个参数的情况下,我应该在执行程序时使用哪个类(Process或ProcessStartInfo或MyProcess)到新创建/执行的进程?因为我有相同任务的等效(Borland)C++代码,如下所示:spawnv(P_NOWAITO,Registry->ReadString("Downloader").c_str(),arglist);其中arglist是一个字符指针数组,并且Registry->ReadString("Downloader").c_str(),就是要执行的程序。 最佳答案

c# - C# 中的参数名称更改是运行时中断更改吗?

我读了几篇文章,说随着C#3.0中命名参数的引入,参数的名称现在是公共(public)契约的一部分。这是真的吗,它到底是什么意思?我运行了一个简单的测试,更改MyLib.dll中的参数名称并没有破坏MyApp.exe,它使用具有原始名称的命名参数调用该方法,我想是因为C#编译器在编译时做了重载解析,生成的IL对参数名一无所知。这是反汇编代码在Reflector上的样子:privatestaticvoidMain(){boolCS$0$0000=true;Class1.DoSomething(CS$0$0000);Console.ReadKey();}...这是原始源代码:staticv

c# - 检查内部方法是否传递了一些可选参数

如何检查可选参数是否传递给方法?publicvoidExampleMethod(intrequired,stringoptionalstr="defaultstring",intoptionalint=10){if(optionalintwaspassed)return;}另一种方法是使用Nullable.HasValue(MSDNdefinitions,MSDNexamples):intdefault_optionalint=0;publicvoidExampleMethod(intrequired,int?optionalint,stringoptionalstr="default

c# - 为参数的未处理的 switch case 抛出正确的异常?

注意:这与建议的重复项不同,因为它处理的是参数而不是值。行为和适用场景有本质区别。假设我们有SomeEnum并且有一个switch语句来处理它:enumSomeEnum{One,Two,}voidsomeFunc(SomeEnumvalue){switch(value){caseSomeEnum.One:...break;caseSomeEnum.Two:...break;default:thrownew??????Exception("Unhandledvalue:"+value.ToString());}}如您所见,我们处理了所有可能的枚举值,但仍保留默认值并抛出异常,以防添加新成

c# - C#中的默认方法参数

如何使方法具有默认参数值? 最佳答案 您只能在C#4中执行此操作,它同时引入了namedargumentsandoptionalparameters:publicvoidFoo(intx=10){Console.WriteLine(x);}...Foo();//Prints10请注意,默认值必须是一个常量-一个正常的编译时常量(例如文字)或:值类型的无参数构造函数default(T)对于某些类型T另请注意,默认值嵌入在调用者的程序集中(假设您省略了相关参数)-因此,如果您更改默认值而不重建调用代码,您仍然会看到旧值。这(以及C#4中

c# - 将方法作为参数传递

这个问题在这里已经有了答案:PassMethodasParameterusingC#(13个答案)关闭2年前。我希望能够将方法作为参数传递。例如..//reallydodgycodepublicvoidPassMeAMethod(stringtext,Methodmethod){DoSomething(text);//callthemethod//method1();Foo();}publicvoidmethodA(){//Dostuff}publicvoidmethodB(){//Dostuff}publicvoidTest(){PassMeAMethod("callingmetho

C#构造函数,对象参数通过引用或值传递

如果您有一个类和一个将对象作为输入参数的构造函数-该对象是按引用传递还是按值传递?并且假设对于类方法,除非使用ref关键字,否则默认情况下对象输入参数按值传递是否正确?out关键字呢?这是否仍然意味着它是通过引用传递的? 最佳答案 Ifyouhaveclassandaconstructorwhichtakesinanobjectasainputparam-isthatobjectpassedbyreferenceorisitpassedbyvalue?在C#中所有参数都是按值传递的,除非参数被标记为out或ref。这是一个巨大的困惑

c# - 同一类型参数的协变和逆变

C#规范指出参数类型不能同时是协变和逆变的。这在创建协变或逆变接口(interface)时很明显,您分别用“out”或“in”修饰类型参数。没有同时允许两者的选项(“outin”)。这种限制仅仅是一种特定于语言的约束,还是基于范畴论的更深层、更根本的原因会让您不希望您的类型既是协变又是逆变的?编辑:我的理解是数组实际上是协变和逆变的。publicclassPet{}publicclassCat:Pet{}publicclassSiamese:Cat{}Cat[]cats=newCat[10];Pet[]pets=newPet[10];Siamese[]siameseCats=newSi

没有变量/参数声明的 C# lambda 表达式?

当一个方法以lambda表达式为参数时,它调用了什么,比如Enumerable.Where,是在没有实际声明表达式中的变量或方法参数的情况下被调用的?例如,我熟悉这个lambda表达式语法:publicstringGetDigits(stringinput){returnnewString(input.Where(i=>Char.IsDigit(i)).ToArray());}然而,令我惊讶的是findout这也可以写成:publicstringGetDigits(stringinput){returnnewString(input.Where(Char.IsDigit).ToArra

c# - 对于实现接口(interface)的类型,你怎么能要求一个没有参数的构造函数呢?

有办法吗?我需要实现特定接口(interface)的所有类型都具有无参数构造函数,可以吗?我正在为我公司的其他开发人员开发用于特定项目的基本代码。有一个进程将创建执行特定任务的类型实例(在不同的线程中),我需要这些类型遵循特定的约定(因此,接口(interface))。接口(interface)将在程序集内部如果您对这种没有接口(interface)的场景有什么建议,我很乐意考虑... 最佳答案 不要太直白,但你误解了接口(interface)的用途。一个接口(interface)意味着几个人可以在自己的类中实现它,然后将那些类的实