草庐IT

强引用

全部标签

c# - C# 是通过引用还是作为副本将 List<T> 传递给方法?

这个问题在这里已经有了答案:Arearraysorlistspassedbydefaultbyreferenceinc#?(4个答案)关闭8年前。从C/C++迈出我在C#世界的第一步,所以细节有点模糊。据我所知,默认情况下,类是通过引用传递的,但是例如。列表如:voidDoStuff(Liststrs){//dostuffwiththelistofstrings}和其他地方Listsl=newList();//nextfilllistinaloopetc.andthendostuffwithit:DoStuff(sl);在这种情况下,sl是通过引用传递的还是制作的副本,以便我需要重新定

c# - 在 4.0 项目中引用 .net Framework 4.5.1 程序集

如何使4.0项目具有4.5引用。在单元测试中,我无法构建解决方案,它给了我这个警告。Warning2Theprimaryreference"PR.Wallet"couldnotberesolvedbecauseitwasbuiltagainstthe".NETFramework,Version=v4.5.1"framework.Thisisahigherversionthanthecurrentlytargetedframework".NETFramework,Version=v4.0".PR.Wallet.Tests 最佳答案 .

c# - 为什么我不能将 newtonsoft.Json.dll 引用添加到我的项目中?

我正在尝试添加引用“Newtonsoft.Json.dll”我已按照他的要求进行操作。它将此ref从“浏览”选项卡添加到“最近”选项卡。如果我查看引用列表中的引用列表,它会列出但带有黄色标记。当我将光标悬停在旗帜上时,它说:不可用,因为它不存在,或者没有build??所以我已将其从ref列表中删除并尝试重新添加它。它只出现在“最近”部分,当我添加它时,我得到:无法添加对“Newtonsoft.Json.dll”的引用。 最佳答案 它可能在您的构建系统中:dll可能正在被清理(如被重建删除),或者位于不在您的解决方案下的目录中,或者只

c# - 找不到类型或命名空间(是否缺少 using 指令或程序集引用?)

当我尝试编译我的C#程序时出现以下错误:找不到类型或命名空间名称“Login”(是否缺少using指令或程序集引用?)usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;namespaceFootballLeague{publicpartialclassMainMenu:Form{FootballLeagu

c# - NuGet 包无法为 lib 目录中的 DLL 添加对项目的引用

我正在尝试打包引用C++DLL的.NETDLL。nuspec文件如下所示:MyPackage1.0.0someauthorsomeownerfalse.NETWrapperforrebuilt64-bitversionofMyPackageCopyright2014当我检查生成的nupkg文件时,内部文件结构看起来是正确的。C++DLL在content中,.NETDLL在lib中。当我将nupkg安装到项目中时,内容DLL被添加到项目根目录,而libDLL被添加到解决方案packages目录。但是,没有引用被添加到项目中。我被迫手动添加引用。我尝试将以下节点添加到元数据,但无济于事:我

c# - vs2010 beta 2 下的 CS0120 错误 - 需要对象引用

以下代码在vs2008下可以正常工作:namespaceN2.Engine.Globalization{publicclassDictionaryScope:Scope{objectpreviousValue;publicDictionaryScope(IDictionarydictionary,objectkey,objectvalue):base(delegate{if(dictionary.Contains(key))previousValue=dictionary[key];dictionary[key]=value;},delegate{if(previousValue==n

c# - VS2010 中的 2.0 框架 .net 引用缺少 System.web.extensions 引用 dll?

我遇到了与此类似的问题person.我正在尝试使用visualstudio2010中使用2.0框架的旧项目。但是,当它在添加时过滤到2.0框架时,它不会识别System.web.extensionsdll是该框架的一部分引用对话框。不,我的框架只是设置为“.NETFramework2.0”,因为没有2.0客户端。如有任何帮助,我们将不胜感激。现在我只是用记事本手动进入csproj文件并添加到引用中。这似乎有效。有没有一种方法可以让我对我正在处理的其他项目执行此操作,或者我是否只需要在每个项目的csproj文件中手动添加它? 最佳答案

c# - 为什么这个嵌套对象初始值设定项会抛出空引用异常?

以下测试用例在尝试将Id分配给空对象时抛出空引用异常,因为代码在对象初始化程序之前缺少“newR”。为什么这没有被编译器捕获?为什么允许它,在哪些用例中这是一个有意义的结构?[TestClass]publicclassThrowAway{publicclassH{publicintId{get;set;}}publicclassR{publicHHeader{get;set;}}[TestMethod]publicvoidThrowsException(){varrequest=newR{Header={Id=1},};}} 最佳答案

c# - 是否有可能拦截(或意识到)COM 对暴露给 COM 的 CLR 对象的引用计数

我已经改写了这个问题。当.net对象通过COM迭代操作暴露给COM客户端时,将创建一个CCW(COMCallableWrapper),它位于COM客户端和托管.net对象之间。在COM世界中,对象会记录其他对象对它的引用数。当引用计数变为零时,对象将被删除/释放/收集。这意味着COM对象终止是确定性的(我们在.net中使用Using/IDispose来确定性终止,对象终结器是非确定性的)。每个CCW都是一个COM对象,并且它像任何其他COM对象一样被引用计数。当CCW终止(引用计数变为零)时,GC将无法找到CCW包装的CLR对象,并且CLR对象符合收集条件。快乐的日子,世界上一切都好。

c# - 使用指针和 ref 关键字引用值有什么区别

我有以下代码:classProgram{privateunsafestaticvoidSquarePtrParam(int*input){*input*=*input;}privatestaticvoidSquareRefParam(refintinput){input*=input;}privateunsafestaticvoidMain(){intvalue=10;SquarePtrParam(&value);Console.WriteLine(value);intvalue2=10;SquareRefParam(refvalue2);Console.WriteLine(value