可能老外是针对继承关系的类来说的,若涉及到主函数会失效的。作者: 郑玉赛 时间: 2012-7-3 15:06
那上面的意思是说必须调用引用成员的够造函数,而你的代码作者: 郑玉赛 时间: 2012-7-3 21:47
意思是必须调用结构中的引用成员的构造函数,不是调用结构的构造函数。你那样没有使用那个引用成员,所以不会报错,我给你下面这一段代码
class Program
{
static void Main(string[] args)
{
S s();
s.p.SayHi();
Console.ReadKey();
}
}
struct S
{
public Person p;
}
public class Person
{
public void SayHi()
{
Console.WriteLine("这里Person类");
}
}
这样的话就会报错。调用引用成员的构造函数就是说给引用成员赋值,没赋值,就没办法使用引用成员的方法或者属性。作者: 郑玉赛 时间: 2012-7-3 21:53
刚没注意 上面的那个S s(),s后面不该有括号。当结构中有引用类型和值类型一起的时候,调用结构的构造函数,也就是new一个结构,就会给结构中的成员赋默认值,值类型看类型而定,int就为零,booL为flase。那引用类型就是为null。所以不能直接使用该引用成员中的方法或者属性。这就是我对那句话的理解,总结一下,就是引用类型的默认值为null,所以不能使用该引用类型成员。