C#中的静态构造函数不允许使用public、private等访问修饰符。然而,VisualStudio代码分析在C#安全类别中有一个警告,显示“CA2121:Staticconstructorsshouldbeprivate”。是否可以使静态构造函数成为非私有(private)的?或者这是VisualStudio代码分析的错误?澄清:我并不是要让任何构造函数成为非私有(private)的。所以为什么?”问题无关紧要。我只是对两个Microsoft工具之间的矛盾感到好奇,想看看是否有任何我不知道的静态构造函数的处理方式。 最佳答案 C
是否可以使C#基类仅在其编译到的库程序集中可访问,同时使从它继承的其他子类公开?例如:usingSystem.IO;classBaseOutput:Stream//Hiddenbaseclass{protectedBaseOutput(Streamo){...}...lotsofcommonmethods...}publicclassMyOutput:BaseOutput//Publicsubclass{publicBaseOutput(Streamo):base(o){...}publicoverrideintWrite(intb){...}}在这里,我希望我的库的客户端无法访问Ba
我有一个关于按钮点击事件循环的问题,在过去的一个小时里,我尝试了很多方法并搜索了很多页面来寻找一个简单的答案,但事实是每个答案看起来都像外星代码,可能是因为我'对开发仍然很陌生。这是我正在尝试做的事情的简化版本:privatestringMessage="Hello";privatevoidSpam(boolloop){if(loop==true){while(loop==true){MessageBox.Show(Message);}}else{MessageBox.Show("Spamminghasstopped!!");}}privatevoidbutton1_Click(obj
我必须使用可以在每个窗口和讲台上使用的热键。在我使用的winforms中:RegisterHotKey(this.Handle,9000,0x0002,(int)Keys.F10);和UnregisterHotKey(this.Handle,9000);和protectedoverridevoidWndProc(refMessagem){base.WndProc(refm);switch(m.Msg){case0x312:switch(m.WParam.ToInt32()){case9000://functiontodobreak;}break;}}在我的WPF应用程序中,我尝试这样做
我们的业务模型中有一个Student类。让我感到奇怪的是,如果我们从另一个学生操纵一个学生,学生的私有(private)成员是可见的,这是为什么?classProgram{staticvoidMain(string[]args){Students1=newStudent();Students2=newStudent();s1.SeePrivatePropertiesAndFields(s2);}}publicclassStudent{privateString_studentsPrivateField;publicStudent(){_studentsPrivateField=Date
我正在尝试检测PrintScreen按钮是否按下,而表单不是当前事件的应用程序。如果可能,该怎么做? 最佳答案 好吧,如果您遇到系统Hook问题,这里有现成的解决方案(基于http://www.dreamincode.net/forums/topic/180436-global-hotkeys/):在你的项目中定义静态类:publicstaticclassConstants{//windowsmessageidforhotkeypublicconstintWM_HOTKEY_MSG_ID=0x0312;}在你的项目中定义类:publ
我知道我可以写了:protectedstatic在我的C#类中(在我的例子中,是一个aspx.cs)。以及:privatestatic这是什么意思?静态无处不在。为什么要保护/私有(private)? 最佳答案 static的定义并不是“随处可用”。它是在AppDomain范围内声明的类型之间共享的变量。AccessModifiers不改变这个定义,但明显影响访问范围。你混淆了static带有访问修饰符的修饰符。静态变量仍然需要定义可访问性。在您的示例中,私有(private)静态变量只能在定义它的类型中访问,而protected变
我有一个静态类,我在其中使用字典作为查找表以在.NET类型和SQL类型之间进行映射。这是一个这样的字典的例子:privatestaticreadonlyDictionarySqlServerMap=newDictionary{{typeof(Boolean),"bit"},{typeof(Byte[]),"varbinary(max)"},{typeof(Double),"float"},{typeof(Byte),"tinyint"},{typeof(Int16),"smallint"},{typeof(Int32),"int"},{typeof(Int64),"bigint"},{
这个问题在这里已经有了答案:Moreprivatethanprivate?(C#)(20个答案)关闭8年前。我的类中有一个属性在set访问器中有很多逻辑:privateStringtext;publicStringText{get{returntext;}privateset{//someactionswithavaluevalue=value.Replace('a','b');text=value;}}如何防止其他开发人员(甚至我)更改此类中的field而不是property?如果有人这样写:publicTest(Stringtext){this.text=text;}它会破坏我的类
没有(显式)引用FirstName应该隐藏的firstName私有(private)变量。你能解释一下这是如何工作的吗?我假设正在获取和设置一些私有(private)变量。谢谢。//auto-implementedpropertyFirstNamepublicstringFirstName{get;set;} 最佳答案 基本上,编译器会将您的代码转换成如下内容:privatestringfirstName;publicstringFirstName{get{returnfirstName;}set{firstName=value;}