jjzjj

c# - 静态一次性元素

我应该如何管理带有一次性元素的static类?有什么经验法则吗?基本上,我应该重构并制作以下​​DisposableDataManager类非-静态还是将所有内容留给GC好吗?.publicstaticclassDisposableDataManager{//ImageListisan'IDisposable'.publicstaticImageListFirstImageList{get;privateset;}publicstaticImageListSecondImageList{get;privateset;}staticDisposableDataManager(){Firs

c# - 如果静态只读成员调用静态方法获取值,是否同步完成?

给定:publicclassMyClass{privatestaticreadonlyDictionarymydict=CreateDictionary();privatestaticDictionaryCreateDictionary(){...}}这是同步完成的吗?(即MyClass的两个快速实例化是否会导致CreateDictionary()被调用两次? 最佳答案 是的,它是线程安全的。IstheC#staticconstructorthreadsafe?Staticconstructorsareguaranteedtober

c# - 在静态类中声明的对象何时会被垃圾回收?

publicstaticclassstClass{staticClass1obj=newClass1();publicstaticintreturnSomething(){return0;}}如果我正在调用静态函数stClass.returnSomething()在其他一些非静态类中?注意:Class1不是静态的 最佳答案 从不,如obj不执行IDisposable.如果你的意思是什么时候obj获得垃圾收集那么答案仍然是永远不会-静态字段永远不会被垃圾收集,因此obj的对象如果您设置obj,引用将仅符合垃圾收集条件为空(或其他一些对

c# - 静态结构方法和静态类方法有什么区别?

我最近发现C#中的结构可以有方法。非常意外地,我发现自己一直在我的代码中使用空结构的静态方法,而不是我认为我正在使用的静态类的静态方法!例如publicstructFoo{publicstaticvoidBar(Paramparam){...}}此时它并没有真正用作结构,因为它根本没有任何属性!这与使用类的静态方法(静态或其他)有很大不同吗?有什么理由比另一个更喜欢一个吗?(我的直觉告诉我,使用静态结构方法至少不那么直观) 最佳答案 不,静态成员属于类型,而不属于类型的实例。声明静态类成员和静态结构成员之间没有区别(无论是在性能还是

c# - 为什么静态和非静态方法不能共享相同的签名?

C#提供以下signaturecharacteristics在函数重载时使用。我们知道重载只考虑参数;它们的数量和类型,但多态性的目标是根据调用策略提供相同的名称但不同的用法。如果我有一个类包含两个具有相同名称和签名的方法,而一个是静态的而另一个不是,C#编译器会抛出一个错误;“Classalreadydefinedamembercalled'foo'withthesameparametertypes”.对这两种方法的调用将有所不同;一个带有对象名称,一个带有类名称的静态。因此调用策略没有歧义。那为什么会报错呢?classExample{publicvoidfoo(){}publics

c# - static关键字是什么意思?

我是C#初学者。我发现有两种方法可以编写代码并输出相同的结果。你能解释一下它们之间的区别吗?什么时候使用#1和#2?#1classProgram{staticvoidMain(){Programmin=newProgram();Console.WriteLine(min.isMin(1,2));Console.ReadLine();}intisMin(intvalue1,intvalue2){intMin;returnMin=Math.Min(value1,value2);}}#2classProgram2{staticvoidMain(){Console.WriteLine(isMi

c# - ColdFusion 中静态方法的等价物是什么?

在C#中,我创建了静态方法来帮助我执行简单的操作。例如:publicstaticclassStringHelper{publicstaticstringReverse(stringinput){//reversestringreturnreversedInput;}}然后在Controller中,我将通过简单地使用来调用它:StringHelper.Reverse(input);现在我将ColdFusion与ModelGlue结合使用,我也想做同样的事情。但是,ColdFusion中似乎没有静态方法的概念。如果我这样创建CFC:componentStringHelper{publics

c# - 如何将 WPF 窗口发送到后面?

在我的应用程序中,我有一个用于绘制调试数据的窗口。当它加载时,我想在所有其他窗口后面“在后台”打开它。实现此目标的最佳方法是什么? 最佳答案 您可以使用以下代码:[DllImport("user32.dll")]staticexternboolSetWindowPos(IntPtrhWnd,IntPtrhWndInsertAfter,intX,intY,intcx,intcy,uintuFlags);constUInt32SWP_NOSIZE=0x0001;constUInt32SWP_NOMOVE=0x0002;staticrea

c# - Lazy<T> 延迟加载错误 : A field initializer cannot reference the non-static field, 方法或属性

我第一次尝试使用延迟加载来初始化我的类中的进度对象。但是,我收到以下错误:Afieldinitializercannotreferencethenon-staticfield,method,orproperty.privateLazym_progress=newLazy(()=>{longtotalBytes=m_transferManager.TotalSize();returnnewProgress(totalBytes);});在.NET2.0中,我可以执行以下操作,但我更愿意使用更新的方法:privateProgressm_progress;privateProgressPro

c# - 为什么静态类不能有非静态方法和变量?

非静态类可以有静态方法和变量,为什么静态类不能有非静态方法和变量?在非静态类中使用静态方法和变量有什​​么好处?尽管在非静态类中使用静态构造函数是可以理解的。 最佳答案 静态类首先不能被实例化,因此即使您可以声明非静态(实例)成员,也永远无法访问它们。由于这个原因确实没有必要允许它,所以该语言只是禁止它。请记住,静态类只是类,而有两件事与非静态类直接相关:类本身,以及类的实例/对象。非静态类可以同时具有静态成员和非静态成员,因此静态成员适用于该类,而非静态成员适用于该类的实例。 关于c#