0
为什么这个程序仍然输出“不为空”即使一切都是空的?我必须改变什么才能最终使其为空?为什么这个程序仍然输出“不为空”?
“您的帖子没有太多的上下文来解释代码段,请更清楚地解释您的场景。”对不起...
public interface IDrawable
{
void Draw();
}
public interface IAdvancedDraw : IDrawable
{
void DrawInBoundingBox();
void DrawUpsideDown();
}
public class BitmapImage : IAdvancedDraw
{
public void Draw() { }
public void DrawInBoundingBox() { }
public void DrawUpsideDown() { }
}
class Program
{
static void Main(string[] args)
{
BitmapImage myBitmap = new BitmapImage();
if ((IAdvancedDraw)myBitmap != null){
Console.WriteLine("not null");
}
Console.ReadLine();
}
}
我想你是空的方法与空对象混淆。 'BitmapImage myBitmap;'会给你null,但是'BitmapImage myBitmap = new BitmapImage();'将创建一个不等于null的类的实例 – 2013-01-10 22:28:23
为什么你认为'(IAdvancedDraw)myBitmap'必须是' NULL'? –
也许你真的想学习['as'](http://msdn.microsoft.com/en-us/library/cscsdfbt(v = vs.110).aspx)运算符和继承。但是,您需要尝试将其转换为类似字符串的错误类型以获取“null”。由于'BitmapImage'继承自'IAdvancedDraw',所以转换成功。 –