相关疑难解决方法(0)

在循环内部或外部声明变量是否更好?

最好做的是:

variable1Type foo; 
variable2Type baa; 

foreach(var val in list) 
{
    foo = new Foo( ... ); 
    foo.x = FormatValue(val); 

    baa = new Baa(); 
    baa.main = foo; 
    baa.Do();
}
Run Code Online (Sandbox Code Playgroud)

要么:

foreach(var val in list) 
{
    variable1Type foo = new Foo( ... ); 
    foo.x = FormatValue(val); 

    variable2Type baa = new Baa(); 
    baa.main = foo; 
    baa.Do();
}
Run Code Online (Sandbox Code Playgroud)

问题是:什么是更快的1例或2例?区别是微不足道的吗?它在实际应用中是否相同?这可能是一个优化微观,但我真的想知道哪个更好.

.net c# scope

31
推荐指数
1
解决办法
1万
查看次数

调试期间是否运行垃圾收集?

我有一个程序打开一个Excel COM对象,做一些东西,并关闭它.然后我想在文件关闭后移动它.如果我运行没有断点的程序,这可以正常工作.但是,如果我在尝试移动文件之前进入调试模式,我会得到一个IOException:"进程无法访问该文件,因为它正被另一个进程使用."

那是什么交易?当一个程序被允许以全速运行而不是在我踩过它时,垃圾收集是否表现更好?踩着我的代码做的不仅仅是非常缓慢地运行它吗?调试模式还有其他后果吗?遇到的其他错误只是因为我在调试而没有运行exe?

c# garbage-collection

8
推荐指数
1
解决办法
2765
查看次数

内存消耗代码优化,垃圾收集器理论

在我的WPF应用程序中,我通过以下方式调用新窗口:

_newWin = new WinWorkers_AddWorker();
_newWin.WindowState = this.WindowState;
_newWin.Show();
Run Code Online (Sandbox Code Playgroud)

哪里_newWinprivate Window object.

我的问题是我应该_newWin在调用后分配一个空值_newWin.Show()吗?

这会减少内存消耗,因为垃圾收集器/析构函数会更早地清理空值对象吗?

谢谢.

c# memory wpf optimization destructor

4
推荐指数
1
解决办法
458
查看次数

string.Empty和null需要多少空间?

一个空字符串null占用多少内存?

我发现了这个问题,它讲述了String.Empty内存分配,但没有null.

如果我想存储一个空字符串或null在会话中哪个会占用更少的空间?

    class MyClass
    {
        public string One { get; set; }
        public string Two { get; set; }            

        public MyClass(string one,string two)
        {
            One = one;
            Two = two;
        }
    } 
    class Main
    {
       var emp = new MyClass(String.Empty, String.Empty);
       var nul = new MyClass(null,null);
    }
Run Code Online (Sandbox Code Playgroud)

.net c#

3
推荐指数
2
解决办法
5375
查看次数

标签 统计

c# ×4

.net ×2

destructor ×1

garbage-collection ×1

memory ×1

optimization ×1

scope ×1

wpf ×1