草庐IT

c# - 哪个是处理读+写和只读的更好的 C# 类设计

我正在考虑两种不同的类设计来处理一些存储库是只读的而其他存储库是可读写的情况。(我预计不需要只写存储库。)类设计1--在基类中提供所有功能,然后在子类中公开适用的功能publicabstractclassRepositoryBase{protectedvirtualvoidSelectBase(){//implementation...}protectedvirtualvoidInsertBase(){//implementation...}protectedvirtualvoidUpdateBase(){//implementation...}protectedvirtualvoid

c# - 如何绕过应用程序范围设置为只读?

如果无论如何都无法更改它们的默认值,它们有什么用?反问。首先,绕过设置系统并直接写入应用程序范围设置文件的最佳方法是什么(下一段中的安全问题)?XmlReader/XmlWriter?IIRC,如果应用程序试图写入其ProgramFiles文件夹,WindowsVista和7会采取一些措施来防止这种情况发生。我想我需要调用UAC来提升,我必须把那个花哨的盾牌图标放在我应用程序的选项窗口的确定按钮上等等。链接到快速操作方法?或者,您可能会告诉我,我正在尝试做的事情很愚蠢,我应该将我的可变应用程序范围设置完全存储在其他地方。 最佳答案

c# - 在构造函数局部函数 c# 中设置只读字段

以下不编译。publicclassA{privatereadonlyinti;publicA(){voidSetI(){i=10;}SetI();}}失败并出现此错误:CS0191Areadonlyfieldcannotbeassignedto(exceptinaconstructororavariableinitializer)从技术上讲,我们仍然不在构造函数中,因为局部函数的可见性是有限的,所以我想知道为什么它不能编译。 最佳答案 编译器将SetI局部函数到一个单独的类级方法中。由于这个单独的类级方法不是构造函数,因此您不能从中

c# - DataGridView 只读单元格

我有一个包含大量数据的绑定(bind)DataGridView。问题是某些单元格必须是只读的,并且当用户在单元格之间使用TAB或ENTER导航时,应该绕过只读单元格。加载后立即将某些特定单元格设为只读的最佳方法是什么?考虑到网格有大量数据,在我设置DataSource后循环遍历单元格不是一个好主意。此外,在CellEnter上将单元格设置为ReadOnly不起作用,因为在使用TAB键导航时,我必须已经知道下一个单元格是否为ReadOnly。 最佳答案 尝试在绑定(bind)数据之前将列而不是单个单元格设置为只读:this.dgrid

c# - 如何在 C# 中使 Dropdownlist 只读

我正在使用TextBox.ReadOnly=false;只读。如何在DropDownList上修复它?我使用Enabled=false属性,例如...TextBox.Enabled=false;DropDownList.Enabled=false;但是,在那个css类之后不会在运行时调用这两个控件。请给我任何属性,例如“ReadOnly”。 最佳答案 asp.net中的DropDownList没有只读属性尝试使用:或者在运行时改变它:DropDownList1.Enabled=false;并更改它的css类。DropDownList

c# - C# 中的不可变和只读是什么意思?

不可更改不可变对象(immutable对象)的值是否正确?我有两个关于readonly的场景我想了解:如果我有一个集合并将其标记为readonly,会怎样,如下所示。我还能调用_items.Add吗?privatereadonlyICollection_items;还有以下变量,如果稍后我调用_metadata.Change,这将更改Metadata实例中一对成员变量的内部值._metadata仍然是不可变的吗?privatereadonlyMetadata_metadata;对于上面的两个变量,我完全理解我不能在初始化器和构造器之外直接给它们赋新值。 最佳

c# - 如何更改只读文本框的文本颜色?

我正在使用C#编写字典,并使用文本框来显示定义。显然,我需要将ReadOnly属性设置为true,但是当我这样做时我无法更改文本的颜色。但是更改字体效果很好。我应该怎么办?我正在使用这段代码并在ReadOnly属性为false时设置颜色工作得很好,但在它为true时不会改变:privatevoidbutton5_Click(objectsender,EventArgse){FontDialogfd=newFontDialog();fd.ShowColor=true;if(fd.ShowDialog()==System.Windows.Forms.DialogResult.OK){tex

c# - C# 中的只读列表

我有一些带有List-property的类:classFoo{privateListmyList;}我只想提供对该字段的访问权限以供读取。即我想要属性可以访问Enumerable、Count等,但不能访问Clear、Add、Remove等。我该怎么做? 最佳答案 您可以公开一个List作为ReadOnlyCollection通过使用AsReadOnly()方法C#6.0及更高版本(使用ExpressionBodiedProperties)classFoo{privateListmyList;publicReadOnlyCollect

c# - 为什么我不能在构造函数中分配给 lambda 语法只读属性?

我的情况:publicclassA{publicstring_prop{get;}publicA(stringprop){_prop=prop;//allowed}}另一种情况:publicclassA{publicstring_prop=>string.Empty;publicA(stringprop){//Propertyorindexer'A._prop'cannotbeassignedto--itisreadonly_prop=prop;}}两种语法:publicstring_prop{get;}和publicstring_prop=>string.Empty;创建一个只读属性

c# - InvalidOperationException - TwoWay 或 OneWayToSource 绑定(bind)无法对只读属性起作用

我正在使用MVVM模式并在运行我的应用程序时收到以下信息无效操作异常TwoWay或OneWayToSource绑定(bind)无法对“ViewModel.SynergyViewModel”类型的只读属性“Options”起作用。我已经在我的View模型中注释掉了我的所有源代码,并将其追溯到一个复选框。如果我在应用程序运行的View模型中注释掉复选框或属性,则减去功能。下面我列出了我的复选框的代码和View模型中的属性。privatebool_Options;publicboolOptions{get{return_Options;}privateset{if(_Options==val