当前位置:  开发笔记 > 编程语言 > 正文

在.NET中有没有办法继承没有构造函数的类?

如何解决《在.NET中有没有办法继承没有构造函数的类?》经验,为你挑选了1个好方法。



1> Raymond Roes..:

你不能通过HttpWebRequest继承(如果你不想调用序列化构造函数),但是你可以通过组合和委托,以及通过WebRequest的继承(我不确定是否会为你做,但是在功能上它非常相似).WebRequest有一个默认构造函数.

在这种情况下,你不能让类'be'成为一个HttpWebRequest(就像在一个is-a关系中),因为你不能从它扩展,但它将是一个WebRequest,这应该足够了.

您可以编写一个继承自WebRequest的类,该类具有WebRequest类型的实例成员,创建HttpWebRequest并在新类型的构造函数中分配实例成员,并委托对该引用的所有调用(类似于装饰器模式):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;

namespace ClassLibrary1
{
    public class MyHttpWebRequest : WebRequest
    {
        private WebRequest request;

        public MyHttpWebRequest(string uri)
        {
            request = HttpWebRequest.Create(uri);
        }

        public override WebResponse GetResponse()
        {
            // do your extras, or just delegate to get the original code, as long
            // as you still keep to expected behavior etc.
            return request.GetResponse();
        }

    }
}

推荐阅读
个性2402852463
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有