1. 程式人生 > >(轉)C# :base的用法(冒號後面的base)

(轉)C# :base的用法(冒號後面的base)

new class pan client isp obj logs 重寫 http

c# 中關於: base()用法,在此記錄一下,方便查閱

1.this是標識當前資源對象的,而base是基於父級的。

2.base發揮了期靈魂級的作用——多態

3.base子類可以訪問父類成員

4.base調用父類方法必須重寫父類方法

5.base子類構造函數直接訪問:base父類構造方法

6.base同樣不能用於靜態方法

public abstract class HttpBasedTransport : ClientTransportBase
    {
        protected HttpBasedTransport(IHttpClient httpClient, string
transportName) : base(httpClient, transportName) { } }

父類

public abstract class ClientTransportBase : IClientTransport
    {
        private readonly IHttpClient _httpClient;
        private readonly string _transportName;
        private readonly TransportHelper _transportHelper;
        
private readonly TransportAbortHandler _abortHandler; private bool _finished = false; private TransportInitializationHandler _initializationHandler; [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "Disposed in the Dispose method.
")] protected ClientTransportBase(IHttpClient httpClient, string transportName) : this(httpClient, transportName, new TransportHelper(), new TransportAbortHandler(httpClient, transportName)) { } internal ClientTransportBase(IHttpClient httpClient, string transportName, TransportHelper transportHelper, TransportAbortHandler abortHandler) { if (httpClient == null) { throw new ArgumentNullException("httpClient"); } if (string.IsNullOrWhiteSpace(transportName)) { throw new ArgumentNullException("transportName"); } Debug.Assert(transportHelper != null, "transportHelper is null"); Debug.Assert(abortHandler != null, "abortHandler is null"); _httpClient = httpClient; _transportName = transportName; _transportHelper = transportHelper; _abortHandler = abortHandler; } }

(轉)C# :base的用法(冒號後面的base)