using System;
class Test
{
static void Main()
{
class1 over = new class1();
class2 df = new class2();
Console.WriteLine(df.a);
class2 go = over as class2;//为什么结果是Null
class2 go2 = (class2)over;//Error //目前我写了一个供调用的dll(采集)...现在我要将采集的内容存入到数据库....
//所以继承采集内容的对象,然后多添加一些字段........
//我调用采集的代码,返回给我一个对象...然后我将对象转换为派生类....结果就为Null了..........
//请问怎么解决.....
//郁闷的我都睡着了!!!
}
} class class1
{
public int a;
public class1()
{
a = 10;
}
}class class2 : class1
{
public class2()
{
}
}
class Test
{
static void Main()
{
class1 over = new class1();
class2 df = new class2();
Console.WriteLine(df.a);
class2 go = over as class2;//为什么结果是Null
class2 go2 = (class2)over;//Error //目前我写了一个供调用的dll(采集)...现在我要将采集的内容存入到数据库....
//所以继承采集内容的对象,然后多添加一些字段........
//我调用采集的代码,返回给我一个对象...然后我将对象转换为派生类....结果就为Null了..........
//请问怎么解决.....
//郁闷的我都睡着了!!!
}
} class class1
{
public int a;
public class1()
{
a = 10;
}
}class class2 : class1
{
public class2()
{
}
}
class1 go = df as class1;
class1 go2 = (class1)df;
as的最大好处是永远不会抛出异常(和is不一样)
as执行前会测试转化结果,如果不能转化,返回null
class2 c2_2=new class1();
//
class1 c1=new class1();
class2 c2_3=c1;这样做的前提是class2是class1的基类即class class1:class2{}而你这样做但却把基类继承关系做反了
class Test
{
static void Main()
{
class1 class1 = new class1();
class2 class2 = class1;//Error////////////(class2)class1,编译OK,运行错误!!!
}
} class class1
{
public int a;
public class1()
{
a = 10;
}
}class class2 : class1
{
public class2()
{
}
}
class2 class2 = class1;-----------------
class class2 : class1编译不过吧