小编Wol*_*ang的帖子

为什么定义为静态或非静态时Random变量的行为会有所不同?

我的问题是:为什么变量"_random"的行为在定义为静态/非静态时会发生变化?

==>静态定义时:_random.nextDouble()返回真正的随机值.

==>当不是:_random.nextDouble()返回几乎相同的值.

class Shape   
{  
    protected Canvas _canvas;
    protected UIElement _element;
    static Random _random = new Random();

    public Shape(Canvas canvas)
    {
        _canvas = canvas;
    }

    public void Draw()
    {
        double val1 = _canvas.ActualWidth * _random.NextDouble();
        double val2 = _canvas.ActualHeight * _random.NextDouble();
        _element.SetValue(Canvas.LeftProperty, val1);
        _element.SetValue(Canvas.TopProperty, val2);
        _canvas.Children.Add(_element);
    }

}


public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void MainWindow_Loaded(object sender, RoutedEventArgs e)
    {
        Shape s1 = new Circle(MemoCanvas);

        for (int i = 0; i < …
Run Code Online (Sandbox Code Playgroud)

c# random wpf static-variables

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

标签 统计

c# ×1

random ×1

static-variables ×1

wpf ×1