小编dot*_*ixx的帖子

局部变量或类字段?

我今天读了一篇关于 C#和Java 性能改进文章.

我还是坚持这个:


19.不要过度使用实例变量

使用局部变量可以提高性能.示例1中的代码执行速度比示例2中的代码快.

例1:

public void loop() {
    int j = 0;
    for ( int i = 0; i<250000;i++){
        j = j + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

例2:

int i;
public void loop() {
    int j = 0;
    for (i = 0; i<250000;i++){
        j = j + 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,我不明白为什么loop在我可以对字段进行简单访问时,每次调用函数时实例化一些内存并释放它应该更快.

这是纯粹的好奇心,我不是试图将变量'i'放在类的范围内:p是否真的使用局部变量更快?或者只是在某些情况下?

c# java performance

12
推荐指数
2
解决办法
6097
查看次数

使用Dependency属性传递回调方法

我正在使用Jarloo的日历控件,以便在WPF软件中显示日历。为了我的需要,我补充说每天都有一个项目列表,可以说List<Item> Items

Jarloo日历是我的主要Visual Studio解决方案中的第二个项目。我以这种方式使用此控件:

<Jarloo:Calendar DayChangedCallback="{Binding DayChangedEventHandler}"/>
Run Code Online (Sandbox Code Playgroud)

如您所见,我希望可以将一个方法从主项目传递到日历的项目,以便可以在Calendar的构造函数中将该方法添加为DayChanged事件的事件处理程序。

但是,通过依赖项收到的项目为null ...

在日历代码中,我的依赖项属性定义为:

public static readonly DependencyProperty DayChangedCallbackProperty = DependencyProperty.Register("DayChangedCallback", typeof(EventHandler<DayChangedEventArgs>), typeof(Calendar));
Run Code Online (Sandbox Code Playgroud)

我的“ DayChangedEventHandler”定义为

public EventHandler<DayChangedEventArgs> DayChangedHandler { get; set; }
void DayChanged(object o, DayChangedEventArgs e)
{
}

// i set this way the DayChangedHandler property so that I can bind on it from the view
DayChangedHandler = new EventHandler<DayChangedEventArgs>(DayChanged);
Run Code Online (Sandbox Code Playgroud)

有人对我有提示吗?

非常感谢:) .x

c# wpf xaml calendar attached-properties

3
推荐指数
1
解决办法
3333
查看次数

用其类型实例化一个类

我正在寻找一种比Activator.CreateInstance从其类型实例化类更快的方法。

我现在正在这样做:Activator.CreateInstance(typeof(LoginView));但它非常慢:我在实例化不同视图时看到一些滞后。

给我一个建议?我现在在谷歌上搜索了几个小时,但我没有找到比这更快的方法来完成我想做的事情..:/

多谢 (:

c# reflection activator

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