(轉)C# :base的用法(冒號後面的base)
阿新 • • 發佈:2017-08-27
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, stringtransportName) : 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)