草庐IT

c# - 为什么常量可以隐式转换而静态只读字段不能?

鉴于下面的代码,我想知道为什么referenceValue=ConstantInt;有效而referenceValue=StaticInt;编译失败。namespaceDemo{publicclassClass1{privateconstintConstantInt=42;privatestaticreadonlyintStaticInt=42;publicvoidDemoMethod(refuintreferenceValue){referenceValue=ConstantInt;//ThiscompilesreferenceValue=StaticInt;//Thisclaims

c# - 如何模拟一个只读属性,其值取决于 Mock 的另一个属性

(如标签所示,我使用的是最小起订量)。我有一个这样的界面:interfaceISource{stringName{get;set;}intId{get;set;}}interfaceIExample{stringName{get;}ISourceSource{get;set;}}在我的应用程序中,IExample的具体实例接受DTO(IDataTransferObject)作为源。IExample的具体实现的一些属性只是委托(delegate)给Source。像这样...classExample:IExample{IDataTransferObjectSource{get;set;}s

c# - 是否有类似 ISet 的只读界面?

我想知道在C#中是否有任何类似于集合的只读接口(interface)声明了一个Contains方法。我不想只实现ISet接口(interface),因为它有太多不必要的方法。我的想法实现是这样的:publicclassPositiveInt:IReadOnlySet{publicboolContains(Int32n){returnn>0;}}publicclassCraEmployeeNames:IReadOnlySet{publicboolContains(Stringn){return!String.IsNullOrWhiteSpace(n)&&n.StartsWith("Cra

c# - 覆盖抽象只读属性以读/写属性

我只想在基本抽象类的给定属性上强制执行C#getter。如果需要,派生类还可以为该属性提供一个setter以供静态绑定(bind)类型的公共(public)使用。给定以下抽象类:publicabstractclassBase{publicabstractintProperty{get;}}如果我想要一个也实现了setter的派生类,我可以天真地尝试:publicclassDerived:Base{publicoverrideintProperty{get{returnfield;}set{field=value;}//Error:Nothingtooverride.}privatein

C# 只读对象

有没有办法返回对象的只读实例?publicclassPerson{publicStringFirstName{get;set;}publicStringLastName{get;set;}}publicclassSomeClass{publicSomeClass(Personmanager){if(manager==null)thrownewArgumentNullException("manager");_manager=manager;}privatereadonlyPerson_manager;publicPersonManager{get{return_manager;}//H

c# - WinForms 中的只读组合框

我正在使用Designer和WinForms在C#、VisualStudio2008中编写GUI。我有一个ComboBox控件,我希望它只允许从提供的选项中进行选择,而不接受用户输入的字符串。它似乎没有ReadOnly属性,禁用它会妨碍控件的可读性(以及不允许用户选择)。 最佳答案 将DropDownStyle设置为“DropDownList” 关于c#-WinForms中的只读组合框,我们在StackOverflow上找到一个类似的问题: https://s

c# - 如何绑定(bind)一个只读的 WPF 控件属性(例如 ActualWidth)以便在 View 模型中可以访问它的值?

这个问题在这里已经有了答案:Pushingread-onlyGUIpropertiesbackintoViewModel(6个答案)关闭8年前。我想将控件的只读属性绑定(bind)到我的View模型,以便该值在View模型中可用。这样做的最佳方法是什么?例如,我想将ActualWidth绑定(bind)到我的View模型中的一个属性。宽度值由WPF使用其布局逻辑生成,因此我无法在我的View模型中生成此值并将其推送到控件属性,这通常是这种情况。相反,我需要让WPF生成值并将其推送到View模型。我只会使用Mode=OneWayToSource,但这不适用于只读属性:...childco

c# - C#线程中的只读字段安全吗?

C#中的readonly字段是否安全?publicclassFoo{privatereadonlyint_someField;publicFoo(){_someField=0;}publicFoo(intsomeField){_someField=someField;}publicvoidSomeMethod(){doSomething(_someField);}}浏览了一些帖子:WhatarethebenefitstomarkingafieldasreadonlyinC#?-JaredPar建议只读字段一旦构造是不可变的,因此是安全的。ReadonlyFieldsandThreadS

c# - 常量、只读和可变值类型

我正在继续学习C#和语言规范,这里有另一个我不太理解的行为:C#语言规范在第10.4节中明确规定了以下内容:Thetypespecifiedinaconstantdeclarationmustbesbyte,byte,short,ushort,int,uint,long,ulong,char,float,double,decimal,bool,string,anenum-type,orareference-type.它还在第4.1.4节中说明了以下内容:Throughconstdeclarationsitispossibletodeclareconstantsofthesimplety

c# - GetHashCode() 中引用的非只读字段

从覆盖概念开始,我覆盖了方法Equals和GetHashCode。主要是我想出了这个“非常简单的代码”:internalclassPerson{publicstringname;publicintage;publicstringlname;publicPerson(stringname,intage,stringlname){this.name=name;this.age=age;this.lname=lname;}publicoverrideboolEquals(objectobj){varperson=objasPerson;if(person!=null){returnperso