繼承是比較簡單的,比如在Designer.cs中有一個類叫 Text100,可以在Text.cs中直接寫:
[csharp] view plaincopy
01.public class Text //這個就是基類
02.{
03. private int _length = 0;
04.
05. public Text(int length)
06. {
07. _length = length;
08. }
09.}
01.public partial class Text100 : Text //這個就是已經在Designer中聲明過的LINQ類
03. .... //在這裡不能再寫構造器了,因為Designer.cs裡邊寫過了
04.}
這裡不能調用其基類構造器,但可以調用partial void OnCreate()(在Deisigner.cs裡邊聲明的)來完成構造器想完成的工作。最終結果是:
03.private int _length = 0;
04.
05.//public Text(int length) //這個好像應該注釋掉,否則總是被調用。沒試過留着它的情況。
06.//{
07.//_length = length;
08.//}
10.
11.public partial class Text100 : Text //這個就是已經在Designer中聲明過的LINQ類
12.{
13. void OnCreate() //在這裡把本來調用構造器的工作做完。
14. {
15. _length = 100;
16. }
17.}
這個OnCreate()在Text100的定義中有一個partial 版本,是Text100的構造器中的唯一一句話(在designer.cs中可找到),換言之就是來解決基類構造問題的。
這種自動生成的類還有很多On...函數,可以解決其他基類調用問題。
本文轉自火星人陳勇 51CTO部落格,原文連結:http://blog.51cto.com/cheny/1100103