【发布时间】:2011-10-30 02:41:18
【问题描述】:
我有一个类Animal,以及它的子类Dog。
我经常发现自己在编写以下代码行:
if (animal is Dog)
{
Dog dog = animal as Dog;
dog.Name;
...
}
对于变量Animal animal;。
是否有一些语法可以让我写出类似的东西:
if (Dog dog = animal as Dog)
{
dog.Name;
...
}
【问题讨论】:
-
这意味着什么?
bool条件是什么? -
我不知道。有什么理由不将 Name 移到 Animal 上?
-
请注意,类似代码通常是破坏SOLID Principles 之一的结果。 L - Liskov Substitution Principle。并不是说一直做你正在做的事情是错误的,但可能值得考虑。
-
请注意@ckittel 在做什么,你可能不想这样做
-
@Solo no,
null!=false在 C# 中; C# 只允许在if条件下实际的布尔值或隐式转换为布尔值的东西。空值和任何整数类型都不能隐式转换为布尔值。
标签: c# casting if-statement