草庐IT

字段别名

全部标签

c# - 属性比字段慢

似乎我遇到的每篇文章都达成了相同的共识:仅返回字段的属性由JIT内联并且具有与字段几乎相同的性能。但是,我目前的情况似乎并非如此。我的程序进行密集计算,访问许多简单的自动getter和私有(private)setter的属性。然而,在这种特殊情况下,我只是复制一个对象。在启用优化的Release模式下分析代码会导致多次调用属性的get函数。对Copy()的调用总计约5.6毫秒。但是,当属性被转换为字段时,该函数的运行速度比使用属性快6倍:与使用字段相比,比较两个属性的相等性似乎会导致更多的性能损失。这是一个类的IEquatable实现的基准测试,使用相同的代码但将属性与字段交换。如果J

c# - 预定义类型 'System.Threading.Tasks.Task' 在全局别名的多个程序集中定义

我刚刚建立了一个新的asp.netmvc4项目,结合使用最新的.net框架(4.5)和VisualStudio2012。在我添加了一些类、辅助项目等之后。我突然注意到我编译项目时收到5次相同的警告。警告指出:ASPNETCOMPILER:warningCS1685:Thepredefinedtype'System.Threading.Tasks.Task'isdefinedinmultipleassembliesintheglobalalias;usingdefinitionfrom'c:\ProgramFiles(x86)\ReferenceAssemblies\Microsoft\

c# - 基类包含字段但类型与控件类型不兼容

Thebaseclassincludesthefield'lbl',butitstype(web.App_Code.CustomLabelControl)isnotcompatiblewiththetypeofcontrol(web.App_Code.CustomLabelControl).我以前用同样的方法做过很多自定义控件,但今天我遇到了这个错误。我有一个Web应用程序项目,在App_Code目录中有以下类,在web.config中为类中的控件引用了一个标签前缀。我现在该怎么办?Web.Config...标记类文件namespaceweb.App_Code{publicclassC

c# - 为什么(或不是)在构造函数中设置字段是线程安全的?

假设您有一个像这样的简单类:classMyClass{privatereadonlyinta;privateintb;publicMyClass(inta,intb){this.a=a;this.b=b;}publicintA{get{returna;}}publicintB{get{returnb;}}}我可以以多线程方式使用这个类:MyClassvalue=null;Task.Run(()=>{while(true){value=newMyClass(1,1);Thread.Sleep(10);}});while(true){MyClassresult=value;if(resul

c# - 类字段可以密封吗?

在MSDNC#programmingguide,有人提到:"Aclassmember,method,field,property,orevent,onaderivedclassthatisoverridingavirtualmemberofthebaseclasscandeclarethatmemberassealed."我理解上述针对方法、属性和事件的声明,但上述声明如何对类的字段有效?我在一个程序中试过这个,并验证了一个字段不能是虚拟的,因此不能被覆盖。那怎么封呢?如果不能,MSDN引用资料中的上述声明是否应该省略字段的提及?谢谢。 最佳答案

c# - 因非对象字段错误而错误对齐或重叠

我正在尝试创建以下结构:[StructLayout(LayoutKind.Explicit,Size=14)]publicstructMessage{[FieldOffset(0)]publicushortX;[FieldOffset(2)][MarshalAs(UnmanagedType.ByValArray,SizeConst=5)]privateushort[]Y;[FieldOffset(12)]publicushortZ;}我收到以下错误:无法从程序集中加载类型“Message”,因为它在偏移量4处包含一个对象字段,该字段未正确对齐或与非对象字段重叠。有谁知道为什么这会导致错

c# - 接口(interface)不能包含字段

可能是一个非常愚蠢的问题,但我不断收到以下代码的上述错误:publicinterfaceIAttributeOption{AttributeTypeCodeType{get;set;}}您可能会说,我正在尝试定义一个具有单个属性的接口(interface)。我知道有人肯定会告诉我“接口(interface)是一个虚拟类,等等等等”,我想提前确认我知道这一点!我显然是在尝试定义一个属性,据我所知,它在界面中没有问题。怎么了??谢谢:) 最佳答案 Sowhatiswrong?没什么,你的接口(interface)声明没问题。听起来你之前

c# - ElasticSearch NEST 搜索多种类型和所有字段

使用ElasticSearchNEST,我无法从查询中获得预期的结果。我的索引/类型布局如下:剧院(索引)事件(类型)剧院促销一般内容这些类型中的每一个都有自己的字段,我正在使用NEST的Index()方法来索引数据。我可以通过以下方式验证它是否被正确索引:查看http://localhost:9200/theatres/_mapping使用Head查看数据的插件作为引用,这是我的客户端配置://TODO:Putsettingsinconfigvarnode=newUri("http://localhost:9200");varconnSettings=newConnectionSet

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

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

c# - 如何在 NEST 中禁用驼峰式 Elasticsearch 字段名称?

默认情况下,NEST在将对象发送到Elasticsearch进行索引时会采用驼峰式命名对象和属性名称。如何在NESTforElasticsearch文档中禁用驼峰式字段名称?我做了相当多的研究,并且有一个mailinglistthread关于这个主题,但它似乎已经过时,因为某些方法已重命名或不再存在。IConnectionPoolconnectionPool=newSniffingConnectionPool(m_ElasticsearchNodeUris);ConnectionSettingssettings=newConnectionSettings(connectionPool)