gpt4 book ai didi

c# - 为什么构造函数在添加括号时转向方法?

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:40 30 4
gpt4 key购买 nike

我正在编写一个类,每当我开始编写我的构造函数时,文本就会变成蓝色,表明它与该类相关,但是,一旦我为参数添加 () 括号,它就会变成黑色,就好像它是一个正常的方法和编译器提示它需要一个返回类型。

这是主要形式:

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 ​​数组大小不能在变量声明中指定(尝试用‘new’表达式初始化)”和“错误 8 'Kat.Form1.catArray' 是一个 '字段' 但像 '类型' 一样使用”和“错误 10 找不到类型或命名空间名称‘tiger1’(是否缺少 using 指令或程序集引用?)”

错误较多,但或多或​​少是重复的。

如果您创建传统的“Cat tiger1 = ...”,对象似乎会实例化,但是当您尝试将它放入数组时,错误确实出现了。

最佳答案

你在方法之外有非初始化代码:

public partial class Form1 : Form
{
Cat[] catArray = new Cat[7];

catArray[0] = new Cat("Tom", "Tiger", "India", 'm', 10); // not legal
Cat tiger2 = new Cat("Kyle", "Tiger", "India", 'm', 4);


public Form1()
{
InitializeComponent();
}
}

将它放在表单的构造函数中:

public partial class Form1 : Form
{
Cat[] catArray = new Cat[7];

Cat tiger2 = new Cat("Kyle", "Tiger", "India", 'm', 4);


public Form1()
{
catArray[0] = new Cat("Tom", "Tiger", "India", 'm', 10);
InitializeComponent();
}
}

编译器用来解析代码的算法被我的无效语法绊倒了,无法准确描述真正的问题是什么。

关于c# - 为什么构造函数在添加括号时转向方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33904698/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com