说,在C ++中,以下代码是合法且广泛使用的:
ObjectType myObject = ObjectType(vector3(10, 9, 3), vector3(40, 0, 0), vector3());
我使用构造函数作为参数传递给构造函数,以避免创建一堆临时变量,我稍后会抛弃它们。
如果我在C#中尝试这样做,就像这样:
ObjectType myObject = new ObjectType(vector3(10, 9, 3), vector3(40, 0, 0), vector3());
我收到编译错误
error CS0118: 'myObject' is a 'type' but is used like a 'variable'
我是否在使用C#方面犯了一个根本性错误,或者我可以采取哪些解决方法?
(假设vector3类有一个不接受任何参数的默认构造函数,以及一个接受三个整数的构造函数)
答案 0 :(得分:3)
我使用构造函数作为参数传递给构造函数以避免 我必须创建一堆临时变量,稍后我会扔掉。
您不是在创建和传递临时对象,
在创建以下对象时使用new
关键字:
ObjectType myObject = new ObjectType(new vector3(10, 9, 3), new vector3(40, 0, 0), new vector3());
//^^^^