我正在按照教程创建一个类:
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 Session3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Vehicle my_Car = new Vehicle;
}
}
class Vehicle
{
uint mileage;
byte year;
}
}
我在这一行上收到了上述错误:
private void button1_Click(object sender, EventArgs e)
{
Vehicle my_Car = new Vehicle;
}
有谁知道我做错了什么?
答案 0 :(得分:13)
使用
Vehicle my_Car = new Vehicle();
要调用构造函数,在类名后需要()
,就像函数调用一样。
需要以下其中一项:
()
用于构造函数调用。例如new Vehicle()
或new Vehicle(...)
{}
作为初始化程序,例如new Vehicle { year = 2010, mileage = 10000}
[]
用于数组,例如new int[3]
,new int[]{1, 2, 3}
甚至只是new []{1, 2, 3}
答案 1 :(得分:4)
语法应为:
Vehicle my_Car = new Vehicle();
答案 2 :(得分:2)
尝试new Vehicle()
答案 3 :(得分:1)
假设您正在使用C#3或更高版本,您还可以使用隐式类型并执行此操作:
var my_Car = new Vehicle();
两种情况都会产生相同的IL。
答案 4 :(得分:0)
只需进一步说明并添加参考链接, 使用new Operator语法分配新内存空间的语法是, 创建对象
Class1 obj = new Class1();
创建匿名类型的实例
var query = from cust in customers
select new { Name = cust.Name, Address = cust.PrimaryAddress };
为值类型调用默认构造函数
int i = new int();
简而言之,正如上面的回答已经说明的那样,缺少括号是为对象动态分配内存所必需的。