我遇到两个错误,我看到它们在哪里,我只是不知道如何更改代码以满足我的需求。
以下是代码:
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
有关如何更改代码的任何建议吗?
答案 0 :(得分:2)
您已经声明了名称为z1
且z2
的变量,您无法再次声明它们
我认为您想要使用相同的变量但是您意外地将int
置于开始
变化
int z1 = z1 + kauliukas; (first error goes here)
到
z1 = z1 + kauliukas; (first error goes here)
和
int z2 = z2 + kauliukas; (second error goes here)
到
z2 = z2 + kauliukas; (second error goes here)
答案 1 :(得分:1)
您正在重新声明变量。
更改:
int z1 = z1 + kauliukas;
要:
z1 = z1 + kauliukas;
并改变:
int z2 = z2 + kauliukas;
要:
z2 = z2 + kauliukas;
答案 2 :(得分:1)
你可以像这样直接使用
z1 = z1 + kauliukas;
和
z2 = z2 + kauliukas;
答案 3 :(得分:1)
您在点击事件中将公共变量重新声明为局部变量,将获取错误的行更改为:
this.z1 += kauliukas
this.z2 += kauliukas
这会将新值分配给您的公共变量。
另外,对随机数代码的另一个建议 - 不要重新创建一个你想生成一个随机数的new Random()
,如果是多线程的话,每个线程使用相同的实例会更可靠使用static
变量,例如
private Random random = new Random();
...
private int RandomNumber(int min, int max)
{
return this.random.Next(min, max);
}
有关详细信息,请参阅Random Numbers上的这篇文章。
答案 4 :(得分:0)
感觉是什么感觉int z1 = z1 + kauliukas;
和/或int z2 = z2 + kauliukas;
?
做一个作业 - 就像这样:
int z1 = kauliukas;
和
int z2 = kauliukas;
或者以不同方式命名您的本地变量:
int z1l = z1 + kauliukas;
和
int z2l = z2 + kauliukas;
BTW:你的代码有点奇怪 - 你为什么要命名与字段相同的局部变量(z1
,z2
,kauliukas
,nuoroda
)?
编辑 - 评论后:
离开int
:
z1 = z1 + kauliukas;
z2 = z2 + kauliukas;
答案 5 :(得分:0)
var z1 = this.z1 + kauliukas;
var z2 = this.z2 + kauliukas;
您需要告诉编译器什么是实例字段以及什么是局部变量。
答案 6 :(得分:0)
您尚未在该范围内分配任何值..
你在button_click中创建一个局部变量并尝试将其设置为自身..你可以在z1之前删除int。
答案 7 :(得分:0)
嗯,你已经有了如何使它发挥作用,但对我来说,你真正的问题是
public int z1;
您不应该公开这样的成员变量。
public int z1 {get;set;}
会更好,但考虑到你正在做的事情,我会选择旧风格。
private int _z1;
public int z1 {get {return _z1;} set {_z1 = value;}
然后
int z1 = _z1 + kauliukas;
本来可以帮助你不要提及必须阅读你的代码的下一个可怜的笨蛋;
Juts因为你可以给一个与成员同名的局部变量并不意味着你应该这样做。
答案 8 :(得分:0)
您在方法中初始化变量。您已经在类中声明了字段kauliukas, z1 ,z2
并编写了int kauliukas = ...
来创建具有相同名称的局部变量。因此,在您的buutton1和button2点击事件处理程序中,使用kauliukas = RandomNumber(1, 6);
和z1 = z1 + kauliukas;
而不使用int