我是C#的新手,来自C++背景.在C++中,您可以这样做:
class MyClass{
....
};
int main()
{
MyClass object; // this will create object in memory
MyClass* object = new MyClass(); // this does same thing
}
Run Code Online (Sandbox Code Playgroud)
而在C#中:
class Program
{
static void Main(string[] args)
{
Car x;
x.i = 2;
x.j = 3;
Console.WriteLine(x.i);
Console.ReadLine();
}
}
class Car
{
public int i;
public int j;
}
Run Code Online (Sandbox Code Playgroud)
你不能这样做.我想知道为什么Car x不做它的工作.
我来自C++,所以有一个我不太了解的java特性.我已经读过必须使用关键字创建所有对象new,但基元除外.现在,如果编译器可以识别基本类型,并且不允许您创建一个没有调用其构造函数的对象new,那么拥有该关键字的原因是什么new?有人可以提供两行代码的例子,除了存在new,编译和具有不同的含义/结果相同吗?
只是为了澄清多余的意思,希望能让我的问题更加清晰.不new添加任何东西?语言是否可以在没有new通过构造函数实例化对象的情况下表达?