草庐IT

字段中

全部标签

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)

c# - 是否可以使用 C#7 绑定(bind)到 WPF 中的 ValueTuple 字段

如果我有一个viewmodel属性public(stringMdf,stringMdfPath)MachineDefinition{get;set;}我尝试在XAML/WPF中绑定(bind)它或同样的错误我看到ValueTuple字段实际上是字段而不是属性。这是问题所在吗? 最佳答案 令人困惑的是,对于旧式元组(C#7之前),所有项目都是属性https://msdn.microsoft.com/en-us/library/dd386940(v=vs.110).aspx因此可绑定(bind)。对于ValueTuple,它们是字段ht

c# - 按默认值初始化字段是多余的

我真的可以信任.NET来初始化字段(如整数、结构等)吗?如果我仍然想初始化这些字段怎么办-会有什么影响? 最佳答案 C#specificationp.305(17.4.4)上的状态Theinitialvalueofafield,whetheritbeastaticfieldoraninstancefield,isthedefaultvalue(§12.2)ofthefield’stype.Itisnotpossibletoobservethevalueofafieldbeforethisdefaultinitializationha

c# - 为什么我应该使用自动实现的属性而不是字段?

两者之间:具有属性:classWithProperty{publicstringMyString{get;set;}}带字段:classWithField{publicstringMyString;}显然我应该选择第一个。为什么?我听说这里的重点是允许接口(interface)更改,但是如果我有第二个,并将其更改为第一个,则不应使用其他代码永远必须改变。重新编译时,一切都会指向属性(property)代替。我是不是漏掉了什么重要的东西? 最佳答案 最重要的区别在于,如果您使用一个字段,然后需要将其更改为一个属性(例如,强制执行某些验

c# - 修改多个字符串字段

我有以下代码:classSearchCriteria{publicstringName{get;set;}publicstringEmail{get;set;}publicstringCompany{get;set;}//...around20fieldsfollowpublicvoidTrim(){if(!String.IsNullOrEmpty(Name)){Name=Name.Trim();}if(!String.IsNullOrEmpty(Email)){Email=Email.Trim();}//...repeatforall20fieldsintheclass.}}我想写一