好的,我有这个原型是由C#中的其他人编写的,我试图把它放到Objective-C中。现在,我还没有任何关于C#的正式经验,所以我还不知道它的一切。我理解前三个变量是什么,但我遇到第四行和第五行(c_data)正在做的问题。是第四个声明一种方法,然后第五个定义它或正在发生什么?谢谢你的帮助!
public class c_data {
public double value;
public int label;
public int ID;
public c_data() { }
public c_data(double val) {
value = val;
}
}
答案 0 :(得分:16)
第四行和第五行是C#中的构造函数。它们相当于objective-c中的[[c_data alloc] init]链。 C#允许您根据构造函数的参数重载构造函数。这相当于Objective-C中有两种不同的初始化方法:
@interface CData : NSObject
{
double value;
int label;
int ID;
}
@property double value;
@property int label;
@property int ID;
-(id) init;
-(id) initWithValue:(double)value;
@end
答案 1 :(得分:2)
第4行是无参数构造函数,第5行是参数全构造函数。
答案 2 :(得分:2)
第一个c_data是默认的no-args构造函数,它将结构的字段初始化为默认值(值 - > 0.0,标签 - > 0,ID - > 0),第二个c_data是一个构造函数,用于设置实例的值字段到传入参数val
,其他字段为默认值。我所描述的是这两个构造函数调用如何初始化实例。
答案 3 :(得分:1)
第4和第5个是构造函数,用于在新建时初始化c_data实例。
答案 4 :(得分:1)
第四个是为类定义一个没有参数且没有动作的构造函数,第五个是定义类的构造函数,它将参数作为double值并将class-internal成员变量值设置为传递的值val。
答案 5 :(得分:1)
第4行和第5行都是构造函数。
第4行是“默认”构造函数,在这种情况下不会初始化任何变量。
第5行的构造函数将名为value的变量设置为传入的参数。
答案 6 :(得分:0)
如果可以,那就像在Objective-C类中同时使用以下两种方法:
构造函数和初始化函数是类似的,它们看起来有点不同。