草庐IT

win_params

全部标签

c# - C# 中的 `params` 是否总是会导致在每次调用时分配一个新数组?

C#/.NET通过按引用传递Array类型来实现可变函数参数(与C/C++不同,C/C++只是将所有值直接放在堆栈上,无论好坏).在C#世界中,这有一个很好的优势,即允许您使用“原始”参数或可重用数组实例调用相同的函数:CultureInfoc=CultureInfo.InvariantCulture;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,3);Int32third=3;Stringformatted0=String.Format(c,"{0}{1}{2}",1,2,third);Object[]values=newObjec

c# - Win32Exception: 目录名无效

我正在尝试以不同的用户身份运行一个进程,该用户在2台运行Vista且启用了UAC的不同计算机中具有管理员权限,但在其中一台计算机中我收到Win32Exception,提示“目录名称无效”谁能告诉我我的代码有什么问题?varmyFile="D:\\SomeFolder\\MyExecutable.exe";varworkingFolder="D:\\SomeFolder";varpInfo=newSystem.Diagnostics.ProcessStartInfo();pInfo.FileName=myFile;pInfo.WorkingDirectory=workingFolder;

c# - C# 中的命名参数和 params 关键字

这个问题在这里已经有了答案:Howtosetnamedargumentforstring.Format?(2个答案)关闭9年前。我有一个C#方法,它带有使用params关键字声明的可变长度参数列表:publicvoidVariableLengthParameterFunction(objectfirstParam,paramsobject[]secondParam)调用方法时有没有使用命名参数的方法?

c# - 如何将凭据传递到计算机以便我可以在其上使用 Microsoft.Win32.RegistryKey.OpenRemoteBaseKey()?

This.NETAPI如果我尝试在与我位于同一域中的计算机中打开注册表,则工作正常(并且我的登录用户在目标计算机上具有管理员权限)。如果它是具有不同本地管理用户(我确实知道其密码)的域外计算机,那就很棘手了。我尝试使用WNetUseConnection()(在过去我想要读取远程磁盘文件的情况下,这对我很有帮助)在调用OpenRemoteBaseKey()之前,但没有成功——我收到拒绝访问异常。显然,我必须以其他方式传递凭据,但如何传递? 最佳答案 我成功地使用了以下代码来访问计算机上的文件:#regionimports[DllImp

电脑技巧:教你关闭Win11内存压缩,解决电脑卡顿的问题

很多朋友都注意到,Win11默认开启了内存压缩功能。内存压缩顾名思义,可以压缩内存中的数据,让内存占用更少,同时减少Swap频次,带来更高的I/O效率。但与此同时,压缩数据需要耗费CPU资源,一些朋友使用的是CPU性能较弱的设备,例如轻薄本,开启内存压缩可能会造成卡顿缓慢。同时,内存压缩需要消耗额外的CPU资源,带来更多耗电发热,这对注重续航的设备来说也是不合适的。实际上,微软在Win10中就已经启用了内存压缩机制,在Win11当中继续了这一设定。那么问题来了,如果你不缺内存,但CPU性能较弱,而且需要更长的续航,要如何关闭内存压缩?一起来看看吧!确认内存压缩的开启状态首先,我们要确认内存压缩

c# - 为什么win32异常没有被c#异常处理机制捕获

我有一个winforms应用程序。Winforms从Program.cs开始,我们在其中定义了main()。我已将这段代码放在try-catchblock中。[STAThread]staticvoidMain(){try{Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(newfrmSplash());}catch(Exceptionex){MessageBox.Show(ex.Message);if(ex.InnerExceptio

c# - C#如何选择带歧义和params

假设我有以下方法:publicstaticvoidMyCoolMethod(paramsobject[]allObjects){}publicstaticvoidMyCoolMethod(objectoneAlone,paramsobject[]restOfTheObjects){}如果我这样做:MyCoolMethod("Hi","test");哪个被调用,为什么? 最佳答案 很容易测试-调用第二个方法。至于为什么-C#语言规范有一些关于如何解决不明确的函数声明的非常详细的规则。有很多关于SO周围接口(interface)、继承和

c# - WIN32_Processor::ProcessorId 是否对所有计算机都是唯一的

我想为许可系统使用一些独特的东西。我决定使用Win32_ProcessorManagement类中的ProcessorID。我尝试了两个具有相同处理器类型的不同系统..它显示两个系统的处理器ID相同。我正在使用这段代码publicstaticStringGetCPUId(){StringprocessorID="";ManagementObjectSearchersearcher=newManagementObjectSearcher("Select*FROMWIN32_Processor");ManagementObjectCollectionmObject=searcher.Get

c# - 在方法覆盖中更改 params 修饰符

我知道params修饰符(将数组类型的一个参数转换为所谓的“参数数组”)不是方法签名的一部分。现在考虑这个例子:classGiraffid{publicvirtualvoidEat(int[]leaves){Console.WriteLine("G");}}classOkapi:Giraffid{publicoverridevoidEat(paramsint[]leaves){Console.WriteLine("O");}}编译时没有警告。然后说:varokapi=newOkapi();okapi.Eat(2,4,6);//willnotcompile!给出错误(方法“Eat”没有重

C# 使用 params 关键字的结果不一致

给定以下方法:staticvoidChangeArray(paramsstring[]array){for(inti=0;i如果我调用它来传递一个字符串数组,这将起作用:string[]array={"Michael","Jordan"}//willbecome{"Michaels","Jordans"}ChangeArray(array);但如果我使用字符串参数调用它,将无法工作:stringMichael="Michael";stringJordan="Jordan";ChangeArray(Michael,Jordan);//ThiswillNOTchangethevalueso