初学者的c#课题

时间:2010-10-12 21:21:50

标签: c#

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void txtTestPrime_Click(object sender, EventArgs e)
        {
            TestPrime myNumber = new TestPrime();
            lblAnswer.Text = 
                myNumber.TestPrime(ToInt16(txtTestPrime.Text)) ? "it is prime!" : "it is NOT prime!";
        }

    }
    public class TestPrime(int number)
    {
        bool prime;


    }

它不喜欢这一行:

public class TestPrime(int number)

我收到此错误:无效的标记'('在类,结构或接口成员声明中

在该行上获得expect { and ;

也在这一行:

myNumber.TestPrime(ToInt16(txtTestPrime.Text)) ? "it is prime!" : "it is NOT prime!"; 

我得到错误4'WindowsFormsApplication1.TestPrime'不包含'TestPrime'的定义,并且没有可以找到接受类型'WindowsFormsApplication1.TestPrime'的第一个参数的扩展方法'TestPrime'(你是否缺少using指令或汇编参考?)

也许这是我做错的一件大事。请帮忙!

3 个答案:

答案 0 :(得分:7)

TestPrime应该是一个班级吗?它听起来更像一个函数(也称为“方法”)。

尝试将该行更改为

public static bool TestPrime(int number)

答案 1 :(得分:3)

您正在尝试同时在同一行创建一个类和一个方法,这没有任何意义。

如果您想要一种检查号码的方法,请执行以下操作:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void txtTestPrime_Click(object sender, EventArgs e)
    {
        // this instantiate a new class, which now is not needed
        //TestPrime myNumber = new TestPrime();
        lblAnswer.Text = TestPrime(Int16.Parse(txtTestPrime.Text)) ? "it is prime!" : "it is NOT prime!";
    }

    public bool TestPrime(short number)
    {
        /* your logic */
        /* this method expects a boolean as the return type */
    }
}

一些有用的链接:

答案 2 :(得分:2)

您不能在类声明中拥有参数。

您需要创建一个采用所需参数的构造函数。

示例:

public class TestPrime
{
        private bool prime;
        private int _number;
        public TestPrime(int number) 
        {
           this._number = number;
        }
}