Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这个变量属于哪一类?_C# - Fatal编程技术网

C# 这个变量属于哪一类?

C# 这个变量属于哪一类?,c#,C#,myhorse是否会再次在Horse类中定义方法?这里有两点 1º:投多少次都没关系。如果编译器成功地将哺乳动物再次变成马,那么他将成为马,因此他将拥有马的所有行为 第二:以这种方式堆叠石膏绝对不是一种好的做法。是的,会的。尽管它正在经历向上投射,但您会发现对于向上投射(哺乳动物)实例,以下条件仍然有效: class Program { class Mammal { } class Horse : Mammal { } static

myhorse是否会再次在Horse类中定义方法?

这里有两点

1º:投多少次都没关系。如果编译器成功地将哺乳动物再次变成马,那么他将成为马,因此他将拥有马的所有行为


第二:以这种方式堆叠石膏绝对不是一种好的做法。

是的,会的。尽管它正在经历向上投射,但您会发现对于向上投射(
哺乳动物
)实例,以下条件仍然有效:

class Program
{
    class Mammal
    {

    }

    class Horse : Mammal
    {

    }

    static void Main()
    {
        Horse myHorse = new Horse();
        Mammal myMammal = myHorse;
        Horse myHorseAgain = myMammal as Horse;
    }
}

但实际上这样做是一种反模式。选择使用的架构。

您将其转换为
Horse
,因此答案是肯定的。请注意,向下转换通常不是一个好主意,而且肯定是一个代码,因为变量属于我,作为您的灵魂……不要问这个问题。运行代码。
(myMammal is Horse) == true