解决 什么是动物中的动物cat = new Cat();

邦德拉

知名会员
已加入
2020年10月24日
留言内容
74
编程经验
Beginner
这个问题很简单,但是我目前正在注释我的代码并开始怀疑。这样对吗?

C#:
// Creates a new instance of the object Cat, inherited from the class Animal
Animal cat = new Cat();
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,533
地点
弗吉尼亚州切萨皮克
编程经验
10+
How do you know that Animal is a class and not an interface?
 

邦德拉

知名会员
已加入
2020年10月24日
留言内容
74
编程经验
Beginner
我意识到代码可能不正确。
Cat cat = new Cat();工作一样好。不知道为什么我要把动物放在第一位。以为这是什么时候继承的写作方式。 Brainfart与新手混在一起 :)
 

跳伞

工作人员
已加入
2019年4月6日
留言内容
2,533
地点
弗吉尼亚州切萨皮克
编程经验
10+
Animal is one of the ancestor classes of Cat, assuming that Animal is even a class an not an interface. In general you use an ancestor class or interface when you don't care about the specific class that has been instantiated because all you want to do is use the methods/properties exposed by the ancestor or interface.

通常,注释每一行代码实际上是一个糟糕的做法。这主要是因为注释已过时,并且为将来的代码读者增加了认知负担。您只应注释不明显的代码行,或在需要解释为什么要执行某些操作时注释掉。通常,解释为什么要执行某项操作的原因是因为您违反约定或某些意外操作。 (想象一下,诗人或歌曲作者用诗歌/歌曲的词句之间的解释来解释他们所写的每一行诗词。这完全破坏了流程。阅读代码时也是如此。经验丰富的读者期望书中的句子流于某种程度。代码。)
 

邦德拉

知名会员
已加入
2020年10月24日
留言内容
74
编程经验
Beginner
谢谢!

的确,我同意这些意见!我记得曾向我的老师指出,以太多注释概述代码太可怕了。
但是,是的,我知道这些注释是初学者课程,需要在此处进行评论。但是,现在这是一门面向OOP的课程,因此可以忽略对基本内容的评论,这是真的!
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
这个问题很简单,但是我目前正在注释我的代码并开始怀疑。这样对吗?

C#:
// Creates a new instance of the object Cat, inherited from the class Animal
Animal cat = new Cat();
没有这样的事情"对象的实例"。对象是实例,它是类型的实例。在这种情况下,类型是类。
 

金西尼

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
3,524
地点
悉尼,澳大利亚
编程经验
10+
我意识到代码可能不正确。
Cat cat = new Cat();工作一样好。不知道为什么我要把动物放在第一位。以为这是什么时候继承的写作方式。 Brainfart与新手混在一起 :)
It really depends on what you want to do with that variable. If you want to treat it as a Cat, i.e. access those members that are specific to the Cat type, then you need to declare it as type Cat. If you intend to treat it as an Animal, i.e. only access those members common to all types derived from Animal, then declaring it as type Animal is OK and probably preferable, because it is an explicit indication that that is how it should be treated, e.g.
C#:
Animal cat = new Cat();
Animal dog = new Dog();
Animal parrot = new Parrot();

var pets = new[] {cat, dog, parrot};
 
最佳 底部