Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#编译错误:错误 ;1未分配局部变量的使用_C# - Fatal编程技术网

c#编译错误:错误 ;1未分配局部变量的使用

c#编译错误:错误 ;1未分配局部变量的使用,c#,C#,我有两个错误,我知道它们在哪里,我只是不知道如何更改代码以满足我的需要 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace zaidimas {

我有两个错误,我知道它们在哪里,我只是不知道如何更改代码以满足我的需要

代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace zaidimas
{
    public partial class Form1 : Form
    {

        public int z1 = 1;
        public int z2 = 1;
        public int kauliukas;
        public string nuoroda;

        public Form1()
        {
            InitializeComponent();
            button2.Visible = false;
            button1.Visible = true;
            webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
            webBrowser1.Navigate("siauliaicity.99k.org/zaidimas/");
        }

        private void button1_Click(object sender, EventArgs e)
        {

            // Gaunama kauliuko reikšmė
                int kauliukas = RandomNumber(1, 6);
                pictureBox1.ImageLocation = kauliukas + ".jpg";
                label2.Text = "Kauliukas ridenos ridinėjosi ir sustojo ties" + kauliukas + "taškais";


                int z1 = z1 + kauliukas; (first error goes here)
                string nuoroda = "http://siauliaicity.99k.org/zaidimas/index.php?z=1&z1=" + z1 + "&z2=" + z2 + "&plus=" + kauliukas;
                webBrowser1.Navigate(nuoroda);
                button1.Visible = false;
                button2.Visible = true;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            // Gaunama kauliuko reikšmė
            int kauliukas = RandomNumber(1, 6);
            pictureBox1.ImageLocation = kauliukas + ".jpg";
            label2.Text = "Kauliukas ridenos ridinėjosi ir sustojo ties" + kauliukas + "taškais";

            int z2 = z2 + kauliukas; (second error goes here)
            string nuoroda = "siauliaicity.99k.org/zaidimas/index.php?z=2&z1=" + z1 + "&z2=" + z2 + "&plus=" + kauliukas;
            webBrowser1.Navigate(nuoroda);
            button1.Text = "Ridenti kauliuką! (Ridena: Pirmasis žaidėjas)";

            button2.Visible = false;
            button1.Visible = true;
        }

        // Kauliuko funkcija
        private int RandomNumber(int min, int max)
        {
            Random random = new Random();
            return random.Next(min, max);
        }

        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {

        }
    }
}
错误消息:

错误1未赋值局部变量“z1”的使用C:\Users\Tutis\Documents\Visual Studio 2008\Projects\zaidimas\zaidimas\Form1.cs 38 26 zaidimas

错误2未赋值局部变量“z2”的使用C:\Users\Tutis\Documents\Visual Studio 2008\Projects\zaidimas\zaidimas\Form1.cs 52 22 zaidimas


有没有关于如何更改代码的建议?

什么是意义所在
int z1=z1+kauliukas和/或
intz2=z2+kauliukas

只需做一项作业,例如:

int z1 = kauliukas;

或者以不同的方式命名局部变量:

int z1l = z1 + kauliukas;

顺便说一句:你的代码有点奇怪-为什么你要命名与字段相同的局部变量(
z1
z2
kauliukas
nuoroda

编辑-评论后:

只需去掉
int

z1 = z1 + kauliukas;
z2 = z2 + kauliukas;

什么是意义和/或
intz2=z2+kauliukas

只需做一项作业,例如:

int z1 = kauliukas;

或者以不同的方式命名局部变量:

int z1l = z1 + kauliukas;

顺便说一句:你的代码有点奇怪-为什么你要命名与字段相同的局部变量(
z1
z2
kauliukas
nuoroda

编辑-评论后:

只需去掉
int

z1 = z1 + kauliukas;
z2 = z2 + kauliukas;
您需要告诉编译器什么是实例字段,什么是局部变量


您需要告诉编译器什么是实例字段,什么是局部变量。

您已经声明了名为
z1
z2
的变量,不能再次声明它们

我认为您想使用相同的变量,但您不小心将
int
放在了start中

改变

int z1 = z1 + kauliukas; (first error goes here)


您已经声明了名为
z1
z2
的变量,不能再次声明它们

我认为您想使用相同的变量,但您不小心将
int
放在了start中

改变

int z1 = z1 + kauliukas; (first error goes here)


您尚未在该范围内分配任何值


在按钮中创建局部变量,然后单击并尝试将其设置为自身。。可以在z1之前删除int

您尚未在该范围内分配任何值


在按钮中创建局部变量,然后单击并尝试将其设置为自身。。可以在z1之前删除int

您正在重新声明变量

更改:

int z1 = z1 + kauliukas;
致:

和变化:

int z2 = z2 + kauliukas;
致:


您正在重新声明变量

更改:

int z1 = z1 + kauliukas;
致:

和变化:

int z2 = z2 + kauliukas;
致:


你可以像这样直接使用

z1 = z1 + kauliukas;


你可以像这样直接使用

z1 = z1 + kauliukas;


如果要在单击事件中将公共变量声明为局部变量,请将获取错误的行更改为:

this.z1 += kauliukas
this.z2 += kauliukas
这将为公共变量分配新值

另外,对随机数代码的另一个建议是:不要重新创建
新随机数()
如果要生成随机数,则每个线程使用相同的实例更可靠,如果多线程使用
静态变量,例如

private Random random = new Random();

...

private int RandomNumber(int min, int max)
{
    return this.random.Next(min, max);
}

有关详细信息,请参阅上的这篇文章。

如果要在单击事件中将公共变量声明为局部变量,请将获取错误的行更改为:

this.z1 += kauliukas
this.z2 += kauliukas
这将为公共变量分配新值

另外,对随机数代码的另一个建议是:不要重新创建
新随机数()
如果要生成随机数,则每个线程使用相同的实例更可靠,如果多线程使用
静态变量,例如

private Random random = new Random();

...

private int RandomNumber(int min, int max)
{
    return this.random.Next(min, max);
}

有关更多信息,请参阅上的这篇文章。

您已经掌握了如何使其工作,但对我来说,您真正的问题是

公共int z1

您不应该像那样公开成员变量

public int z1 {get;set;}
那会更好,但考虑到你现在所做的,我会选择老式的

private int _z1;
public int z1 {get {return _z1;} set {_z1 = value;}
然后

本可以帮你摆脱困境,更不用说下一个可怜的家伙,他必须阅读你的代码


因为你可以给一个局部变量起一个与成员相同的名字并不意味着你应该这样做。

你已经知道如何让它工作了,但对我来说,你真正的问题是

公共int z1

您不应该像那样公开成员变量

public int z1 {get;set;}
那会更好,但考虑到你现在所做的,我会选择老式的

private int _z1;
public int z1 {get {return _z1;} set {_z1 = value;}
然后

本可以帮你摆脱困境,更不用说下一个可怜的家伙,他必须阅读你的代码


Juts是因为您可以为局部变量指定与成员相同的名称,但这并不意味着您应该这样做。

您可以在方法中初始化变量。您已经在类中声明了字段
kauliukas、z1、z2
,并编写了
int-kauliukas=…
创建了同名的局部变量。因此,在buutton1和button2中,单击事件处理程序use
kauliukas=RandomNumber(1,6)
z1=z1+kauliukas不带
int

可以在方法中初始化变量。您已经在类中声明了字段
kauliukas、z1、z2
,并编写了
int-kauliukas=…
创建了同名的局部变量。因此,在buutton1和button2中,单击事件处理程序use
kauliukas=RandomNumber(1,6)
z1=z1+kauliukas不带
int

谢谢Haris!我犯了一个愚蠢的错误。。。学习,谢谢Haris!我犯了一个愚蠢的错误。。。学习。