【发布时间】:2015-11-24 22:01:31
【问题描述】:
我正在编写一个类,每当我开始编写构造函数时,文本变为蓝色,表示它与类相关,但是,一旦我为参数添加 () 括号,它就会变成黑色,就好像它是正常的一样方法和编译器抱怨它需要一个返回类型。
这里是主要形式:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Kat
{
public partial class Form1 : Form
{
Cat[] catArray = new Cat[7];
catArray[0] = new Cat("Tom", "Tiger", "India", 'm', 10);
Cat tiger2 = new Cat("Kyle", "Tiger", "India", 'm', 4);
public Form1()
{
InitializeComponent();
}
}
}
这是课程:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Kat
{
class Cat
{
private string _name, _species, _country;
private char _gender;
private int _age;
public Cat(string name, string species, string country, char gender, int age)
{
_name = name;
_species = species;
_country = country;
_gender = gender;
_age = age;
}
}
}
而且它肯定不起作用,因为我不能用它来构造一个对象。这是来自我的 IDE 的精确副本,它位于主类的命名空间中。
主类的错误是: “错误 3 方法必须有返回类型” 和 “错误 1 数组大小无法在变量声明中指定(尝试使用‘新’表达式进行初始化)” 和 “错误 8 'Kat.Form1.catArray' 是一个'字段',但用作'类型'” 和 “错误 10 找不到类型或命名空间名称 'tiger1'(是否缺少 using 指令或程序集引用?)”
错误更多,但或多或少是重复的。
如果你用传统的“Cattiger1 = ...”创建对象,它似乎会实例化,但是当你尝试将它放入数组时,错误确实出现了。
【问题讨论】:
-
确切的错误信息是什么?
-
它对我来说很好,但我要补充一点,默认的空构造函数是多余的,除非你还指定了一个参数化的构造函数。是否出现编译错误?
-
如果代码无法编译,请尝试重启 VS,有时它会报错,快速重启会将其唤醒。
-
确保您的代码中的拼写 和 大小写相同,我假设您上面的代码不是从您的 IDE 复制/粘贴的。
-
是否在命名空间中?
标签: c# class constructor