草庐IT

dependency_var

全部标签

c# - 使用 'var' 对 C# 编译器的性能有多大影响?

我发现var关键字极大地帮助减少了我的C#代码中的噪音,而且几乎不影响可读性;我会说我现在只在编译器强制我使用时才使用显式类型。我知道usingvardoesnotchangetheruntimecharacteristicsofmycode.但我刚刚想到一个问题:我是否在编译时为编译器现在为我做的所有额外工作付出了很大的代价?有没有人做过任何基准测试,看看大量使用var对编译时间有多大影响? 最佳答案 我的建议:尝试两种方法。测量结果。那你就知道了。我没有做过任何基准测试,即使做过,也无法回答您的问题。我们不知道你有什么硬件,你的

c# - 将 'var' 初始化为 null

以下变量初始化在运行时性能上有什么不同吗?varx=nullasobject;varx=(object)null;objectx=null; 最佳答案 我相信没有,因为编译的IL没有区别。varx=nullasobject;varx1=(object)null;objectx2=null;编译为IL_0001:ldnullIL_0002:stloc.0//xIL_0003:ldnullIL_0004:stloc.1//x1IL_0005:ldnullIL_0006:stloc.2//x2您可以看到所有局部变量都仅使用ldnull操作

c# - Ninject 和 MVC3 : Dependency injection to action filters

关于如何使用Ninject在ASP.NETMVC3中的ActionFilter上进行属性注入(inject),我发现了大量不确定的文章和问题。谁能给我一个明确的例子吗?这是我的自定义身份验证属性。publicclassCustomAuthorizeAttribute:AuthorizeAttribute{[Inject]publicIServiceService{get;set;}[Inject]publicIAuthenticationHelperAuthenticationHelper{get;set;}publicoverridevoidOnAuthorization(Autho

c# - var 不适用于 DataGridViewRow

我是C#新手,对“var”的使用有疑问当我使用下面的代码时一切正常foreach(DataGridViewRowrowinmyGrid.Rows){if(row.Cells[2].Value.ToString().Contains("51000")){row.Cells[0].Value="X";}}但是当我将DataGridViewRow更改为var时,我得到了错误信息'object'doesnotcontaindefinitionfor'Cells'andnoextensionmethod'Cells'acceptingafirstargumentoftype'object'cou

c# - Resharper:vars

为什么Resharper要您将大多数变量更改为var类型而不是代码中的实际类型? 最佳答案 这只是一个选项。您可以禁用它:ReSharper->选项->代码检查->检查严重性->代码冗余->尽可能使用“var”关键字:将其更改为“不显示”还有上下文(灯泡)选项,它将带您前往各个方向-这是在ReSharper->选项->语言->C#->上下文操作->“用‘var’替换显式类型声明”下 关于c#-Resharper:vars,我们在StackOverflow上找到一个类似的问题:

c# - 这真的是一个改进吗(当内部范围处于循环中时将 var 移动到内部范围)?

Resharper推荐这些变量:ListsenderDeviceIDList;stringsenderDeviceID;...foreach(variteminPlatypiIds){senderDeviceIDList=awaitGetSenderDeviceIDForSenderID(item);senderDeviceID=senderDeviceIDList[0];...可以在内部范围内声明,如下所示:foreach(variteminPlatypiIds){ListsenderDeviceIDList=awaitGetSenderDeviceIDForSenderID(ite

c# - 在 WCF 服务应用程序中找不到类型或命名空间名称 'var'

当我尝试在WCF服务应用程序中使用“var”时,出现错误“找不到类型或命名空间名称‘var’(是否缺少using指令或程序集引用?)” 最佳答案 如果您尝试在类成员中使用var,则会出现此错误,例如:publicclassFoo{vara=4;}var只能在方法内部使用,不能在类、字段或方法签名中使用。另请参阅:Whynovaronfields? 关于c#-在WCF服务应用程序中找不到类型或命名空间名称'var',我们在StackOverflow上找到一个类似的问题:

c# - 系统.IO.FileNotFoundException : Could not load file or assembly 'X' or one of its dependencies when deploying the application

我在部署应用程序时遇到了一个奇怪的问题,该应用程序引用了一个用托管C++编写的程序集。我创建了一个程序集X,对其进行编译并在名为Starter的exe文件中引用它。Starter.exe在本地机器上正常启动。但是,当我将启动器调试文件夹的所有内容复制到虚拟机器并尝试在那里启动它时,它崩溃并出现以下异常:UnhandledException:System.IO.FileNotFoundException:Couldnotloadfileorassembly'X'oroneofitsdependencies.Thespecifiedmodulecouldnotbefound.这对我来说没有

c# - 业务逻辑层和数据访问层 : circular dependency

我遇到了一点架构问题。在我的项目中,我有一个业务逻辑层(BLL),其中包含我所有的业务规则、模型和接口(interface)的OOAPI。每个对象都有像getById这样的静态方法,它返回所述对象的一个​​实例。每个对象还具有保存和删除等方法。这是非常简单的OO代码。现在我有一个数据访问层(DAL),包含在一个单独的命名空间中,对于每个BLL对象,我都有一个数据类或“存储库”,它执行getById和保存命令。所以在某种程度上,BLLsave和getById方法是DataClass方法周围的薄层。publicstaticNewsItemGetByID(intid){returnDataF

c# - c#中的lambda表达式和var关键字

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:C#Whycan'tananonymousmethodbeassignedtovar?我在C#中有以下语句Funcadd=(x,y)=>x+y;但是当我用以下内容替换左侧语句时varadd=(x,y)=>x+y;我收到编译器错误(无法将lambda表达式分配给隐式类型的局部变量)。为什么?