答案:i=14;i=10; 2.請輸出B.test()的輸出結果 答案: i am B; i am B; 1; 2; 3.有序集合seqList{1,1,2,3,5,8,13,21,34.........}請查找集合中第一個大於2147483647的數。 答案:此函數是有名的斐波那契數。實現此函數的 ...
- 分析以下代碼
1 string str = "abc123中文漢字"; 2 3 int i = System.Text.Encoding.Default.GetBytes(str).Length; 4 5 int j = str.Length; 6 7 Console.WriteLine(i); 8 9 Console.WriteLine(j);
答案:i=14;i=10;
2.請輸出B.test()的輸出結果
1 class A 2 { 3 int i = 1; 4 public virtual void M1() 5 { 6 Console.WriteLine(" i am A "); 7 } 8 public void M2() 9 { 10 Console.WriteLine(" i ={0} ",i); 11 } 12 } 13 14 class B:A 15 { 16 int i = 2; 17 public override void M1() 18 { 19 Console.WriteLine(" i am B "); 20 } 21 public new void M2() 22 { 23 Console.WriteLine(" i ={0} ", i); 24 } 25 } 26 27 static void Main(string[] args) 28 29 { 30 31 B b = new B(); 32 A a = b; 33 a.M1(); 34 b.M1(); 35 a.M2(); 36 b.M2(); 37 38 }
答案: i am B;
i am B;
1;
2;
3.有序集合seqList{1,1,2,3,5,8,13,21,34.........}請查找集合中第一個大於2147483647的數。
答案:此函數是有名的斐波那契數。實現此函數的方法為
1 //遞歸寫法 2 public int foo(int n) 3 { 4 if(n<2) return 1; 5 else return foo(n-2)+foo(n-1) 6 } 7 8 //迴圈寫法 9 public int[] foo2(int n) 10 { 11 if(n==1) return new int{1}; 12 else if(n==2) return new int{1,1}; 13 else 14 { 15 int rel[]=new rel[n]; 16 rel[0]=1; 17 rel[1]=1; 18 for(int i=2;i<n;i++) 19 { 20 rel[i]=rel[i-2]+rel[i-1]; 21 } 22 } 23 }
查找大於2147483647的數用二分法查找。
private static int FibonacciSearch(int[] array, int key) { int length = array.Length; int low = 0, high = length - 1, mid, k = 0; mid=(low+high )/2 while(mid<high) { if(array[mid]==key){return mid;break;} else if(array[mid]>key){high=mid;mid=(low+high )/2;} else if(array[mid]<key){low=mid;mid=(low+high )/2;} } }
4.簡述以下詞在C#語言中的作用
volatile:(創建單例模式時會使用,懶漢模式)就像大家更熟悉的const一樣,volatile是一個類型修飾符(type specifier)。它是被設計用來修飾被不同線程訪問和修改的變數。如果不加入volatile,基本上會導致這樣的結果:要麼無法編寫多線程程式,要麼編譯器失去大量優化的機會。作為指令關鍵字,確保本條指令不會因編譯器的優化而省略,且要求每次直接讀值.,簡單地說就是防止編譯器對代碼進行優化.比如如下程式:
1 2 3 4 |
XBYTE[2]=0x55;
XBYTE[2]=0x56;
XBYTE[2]=0x57;
XBYTE[2]=0x58;
|
1 //第一種 2 <input id="tea_Name" name="tea.Name" type="text" value="馬老師"/> 3 //第二種 4 @Html.TextBox("tea.Name",Model.tea.Name) 5 //第三種 6 @Html.TextBoxFor(m=>m.tea.Name) 7 //第四種 8 @Html.TextEditorFor(m=>m.tea.Name)
6.用一條SQL語句 查詢出每門功課都大於80分的學生姓名,表結構如下
姓名 | 課程 | 分數 |
張三 | 語文 | 81 |
張三 | 數學 | 75 |
張三 | 英語 | 82 |
李四 | 語文 | 76 |
李四 | 數學 | 90 |
李四 | 英語 | 82 |
王五 | 語文 | 81 |
王五 | 數學 | 100 |
王五 | 英語 | 92 |
答案一:select 姓名 from 表 where 姓名 not in (select 姓名 from 表 where 分數<=80)
答案二(推薦):select 姓名 from 表 group by 姓名 having min(分數)>80
7.簡述Vue中methods、computed以及watch的用法及區別。
1#computed:計算屬性將被混入到 Vue 實例中。所有 getter 和 setter 的 this 上下文自動地綁定為 Vue 實例。
2#methods:methods 將被混入到 Vue 實例中。可以直接通過 VM 實例訪問這些方法,或者在指令表達式中使用。方法中的 this 自動綁定為 Vue 實例。
3#watch:是一種更通用的方式來觀察和響應 Vue 實例上的數據變動。一個對象,鍵是需要觀察的表達式,值是對應回調函數。值也可以是方法名,或者包含選項的對象。Vue 實例將會在實例化時調用 $watch(),遍歷 watch 對象的每一個屬性。
官方API地址:https://cn.vuejs.org/v2/api/#computed
個人博客:https://blog.csdn.net/smartdt/article/details/75557369
8.現有一個業務系統有4萬用戶,所有用戶每天產生6千萬數據,系統要求快速查詢60天數據,請給出你的實現方案。
9.描述你曾經或者正在使用的大型項目解決方案。
10.何時必須聲明一個類為抽象類?
答案:當這個類中包含抽象方法時,或是該類並沒有完全實現父類的抽象方法時。
11.MVC框架中,ActionResult,JsonResult,ContentResult哪個可以return view()?
答案:ActionResult。
12.Aspx頁面中,updatepanel的作用是什麼?
答案:UpdatePanel控制頁面的局部更新。(局部更新控制項)、
13.MVC框架中,當使用Get方法訪問JsonResult時,能否直接採用以下寫法:return json(obj).為什麼?
答案:不能,要使用 res.JsonRequestBehavior = JsonRequestBehavior.AllowGet;//允許使用GET方式獲取,否則用GET獲取是會報錯。
14.可以採用foreach迭代的類的對象必須滿足什麼條件?
答案:需要實現IEnumerable介面或聲明GetEnumerator方法的類型。註:不一定要實現IEnumerable介面,但一定要實現GetEnumrator方法。
15.在dotnet環境下,如何把資料庫數據轉換為XML格式輸出?
將資料庫的內容讀取到dataTable或dataSet中,dataTable或dataSet轉為xml。
private string ConvertDataTableToXML(DataTable xmlDS) //DataTable可改用dataset { MemoryStream stream = null; XmlTextWriter writer = null; try { stream = new MemoryStream(); writer = new XmlTextWriter(stream, Encoding.Default); xmlDS.WriteXml(writer); int count = (int)stream.Length; byte[] arr = new byte[count]; stream.Seek(0, SeekOrigin.Begin); stream.Read(arr, 0, count); UTF8Encoding utf = new UTF8Encoding(); return utf.GetString(arr).Trim(); } catch { return String.Empty; } finally { if (writer != null) writer.Close(); } }
16.Html頁面上,有如下代碼<input type="button" name ="btndel" onclick="Del()"/>.現在要求用戶點擊刪除後,彈出刪除確認的對話框,併在點擊確定後彈出對話框“”“刪除完畢”,用JS如何實現。
答案:
1 function Del() 2 { 3 if(confirm("確定刪除")) 4 alert("刪除成功") 5 }
17.請寫出一個json的例子。
答案:[{"id":"123","name":"huawei"}]
18.List<Domain1> Alist 中有100個Domain1元素,且每個Domain1元素都有屬性string typStr,現在需要取出AList中所有typeStr="Atype"的元素,並組成新的List,該如何實現。
答案:
1 List<string> BList=new List<string>(); 2 foreach(var a in AList) 3 { 4 if(a.typeStr=="Atype") 5 Blist.add(a.typeStr); 6 }
19.EF框架中,使用DBFirst時資料庫中的表A沒有主鍵,能否通過“從資料庫更新模型“操作,將表A導入到EF框架中。
答案:不能,表必須要有主鍵,否則會報錯。
savechange()方法返回0,而不是正常的大於0的書。切記設置主鍵。
返回錯誤InnerException = {"無法更新 EntitySet“t_Customer”,因為它有一個 DefiningQuery,而 <ModificationFunctionMapping> 元素中沒有支持當前操作的 <InsertFunction> 元素。"}。
在發現錯誤後要吧原有的資料庫的表刪除,重新更新。如果不刪除的話,無法更新,並且要重新生成解決方案。
20.foreach和for迴圈誰的效率高?switch和if呢?
答案:foreach高,for 迴圈每次都要進行判斷i的大小,foreach 依賴 IEnumerable.第一次 var a in GetList() 時 調用 GetEnumerator 返回第一個對象 並 賦給a,以後每次再執 行 var a in GetList() 的時候 調用 MoveNext.直到迴圈結束。期間GetList()方法只執行一次.
同樣的道理:當有多個判斷時,switch更快。
21.WebService基於什麼協議?
答案:soap協議,而Soap建立在http上的。
22.WebService和WebAPI 有什麼不同。
1、webservice是基於SOAP協議的,數據格式是XML,webapi遵循的http協議,它的Response可以被而Web API的MediaTypeFormatter轉換成Json、XML 或者任何你想轉換的格式。
2、webservice它只能部署在IIS上,而webapi可以寄宿在不同的宿主上(寄宿的本質就是利用一個具體的應用程式為Web Api提供一個運行的環境,並解決請求的接收和響應的回覆),如Web Host,Self Host方式
3、webservice 也可以通過ajax訪問。
4、webapi無狀態,相對webservice更輕量級。webapi支持如get,post等http操作,並且對限制帶寬的設備,比如智能手機等支持的很好。
這樣對比的話webservice貌似並不好用。但是我們為什麼要用它呢,理由如下:
1、很好的跨編程語言和跨操作系統
2、可移植性:傳統的WebService只是利用了HTTP通道,進行獨立的交互,但是這個交互協議可以移植到其他協議下運作
23.C#是否支持多重繼承?
答案:不支持。多重繼承指的是一個類可以同時繼承多個類,比如A類繼承自B類和C類,這就是多重繼承。C#只能繼承一個類,但是可以繼承多個介面。
24.修飾符protected internal 的意思?
internal修飾的b在同一個項目中哪裡都可以訪問,而在另外一個項目中就不能訪問,說明“同一程式集”指的是同一個項目;對於protected internal修飾的a在同一項目中哪裡都可以訪問,而在其它項目中只有在派生類可以訪問,所以protected internal 修飾的成員變數是同一程式集或者派生類可以訪問,也就是protected跟internal的並集,而不是交集。(被protected internal修飾的屬性/方法只能在它的在同一個程式集(Assembly)中的子類被訪問)查資料找到了兩種說法,不知道哪種是對的,個人以為是第一種是對的。
25.bs架構下,可否聲明一個靜態的資料庫連接對象,所有的業務類都引用該靜態連接對象去訪問資料庫?
答案:一個靜態的Sqlconnection來管理項目內所有的資料庫連接在絕大部分場景是不合理的
(沒說絕對不可行,在winform單線程項目中,這樣做是沒有問題的,因為操作者是一個用戶,每個用戶都有一份程式副本)
如果是多個用戶提交的請求是
同一個AppDomain中的函數,方法(這種說話不嚴謹,不過我暫時找不到更好的表達方式)
來處理時.都是用同一個靜態的Sqlconnection對象是不行的.
會引起併發問題,會引起相互干擾.還需要加鎖lock才能操作.
26.C#提供了一個預設的無參數構造函數,當我實現了另外一個有一個參數的構造函數的時候,還想保留這個無參數的構造函數。這樣我應該寫幾個構造函數?
答案:兩個。
27.能夠阻止某一個類被其他類繼承麽?能夠實現允許某個類被繼承,但不允許其中某個方法被覆寫嗎?
答案:(1)當對一個類應用 sealed 修飾符時,此修飾符會阻止其他類從該類繼承,(2)可以,標記這個類為public,並標記這個方法為sealed.
28.什麼是強類型?C#是強類型嗎,JS呢?
答案:強類型指的是程式中表達的任何對象所從屬的類型都必須能在編譯時刻確定。常見的強類型語言有C++、Java、Apex和Python等,C#是強類型,JS不是。
29.金額等精確的數值聲明為什麼類型?
答案:float,double,decimal
30.讀寫資料庫都需要哪些對象,簡要說明其作用。
答案1、 Connection:與數據源建立連接。
2、 Command:對數據源執行SQL命令並返回結果。
3、 DataReader:讀取數據源的數據,只允許對將數據源以只讀、順向的方式查看其中所存儲的數據。其常用於檢索大量數據,DataReader對象還是一種非常節省資源的數據對象。
4、 DataAdapter:對數據源執行操作並返回結果,在DataSet與數據源之間建立通信,將數據源中的數據寫入DataSet中,或根據DataSet中的數據綁定數據源。
5、 DataSet:記憶體中的資料庫,是數據表的集合,它可以包含任意多個數據表。
31.通過程式控制GC的強制回收是否可以提高效率?
答案:個人以為是可以的(在網上沒找到答案),GC是迴圈遍歷所有資源的,如果你已經強制回收了,那麼遍歷的就會少,從而提高效率。
32.int?和int的區別。
答案:int?為可空類型,可以是null,他是通過把int裝箱為引用類型實現的。
33.求數列(1,1,2,3,5,8,13。。。。)的和。
答案:見第三題的迴圈寫法,定義一個變數為sum,sum+=arr[I]
34.BS架構下,在session中存儲了一個datatable的對象y,y在什麼時候會被GC回收?這種存儲數據的方式是否合理?如果Application增加了對y的引用,什麼時候會被GC回收?
答案:在session的生命周期結束之後回收,不合理,每個session儲存在伺服器端的記憶體里,每個用戶都會有一個獨立的session,如果session的內容過於複雜,當大量的用戶訪問的時候會導致記憶體溢出。Application是所有用戶共有的,所以應該不會被回收(個人理解)。
35.string和stringbuilder的區別。
答案:System.String是不可變的字元串。System.StringBuilder存放了一個可變的字元串,並提供一些對這個字元串修改的方法
36.舉例寫一個單例模式
1 public class Singleton 2 { 3 private static Singleton _Singleton = null; 4 private static object Singleton_Lock = new object(); 5 public static Singleton CreateInstance() 6 { 7 if (_Singleton == null) //雙if +lock 8 { 9 lock (Singleton_Lock) 10 { 11 Console.WriteLine("路過。"); 12 if (_Singleton == null) 13 { 14 Console.WriteLine("被創建。"); 15 _Singleton = new Singleton(); 16 } 17 } 18 } 19 return _Singleton; 20 } 21 }
37.描述一下virtual、sealed、override和abstract的區別。
答案:
virtual申明虛方法的關鍵字,說明該方法可以被重寫
sealed說明該類不可被繼承
override重寫基類的方法
abstract申明抽象類和抽象方法的關鍵字,抽象方法不提供實現,由子類實現,抽象類不可實例化。
38.List<int> listNumber,其中存儲了從1到100的數字,現需要將ListNumber按照形如“1,2,3,4.。。”輸出,請寫出相應的代碼。
1 foreach(var a in listNumber.sort()) 2 { 3 Console.WriteLine(a); 4 }
39.int,string,hashtable,datetime,datatable中哪些是引用類型?
答案:string,hashtable,datatable
40.一棵二叉查找樹(Binary Seach Tree)具有以下特點,樹中的任一節點,如果左子樹不為空,則左子樹的所有節點的值都小於該節點的值,如果右子樹不為空,那麼右子樹所有節點的值都大於該節點的值;任一個節點的左右子樹都是二叉查找樹,示意圖如下
假設二叉查找樹的節點定義如下:
1 Class BSTreeNode{ 2 int value; 3 BSTreeNode leftChild; 4 BSTreeNode rightChild; 5 }
要實現一個方法printRang:按從小到大的順序輸出範圍在【min,max】之間的所有值。請寫出你認為最高效的代碼。
1 void printRang(BSTreeNode btsnode,int min,int max) 2 { 3 //中序遍歷,大於min的輸出,小於max的不輸出 5 //迴圈這裡使用棧輔助進行遍歷 6 System.Collections.Generic.Stack<Tree> stack = new System.Collections.Generic.Stack<Tree>(); 7 while(btsnode != null || stack.Any()) 8 { 9 if(btsnode.value>max)break; 10 else if (btsnode != null) 11 { 12 stack.Push(btsnode); 13 btsnode = btsnode.Left; 14 } 15 else 16 { 17 var item = stack.Pop(); 18 if(item.Value>=min&&item.Value<=max) 19 Console.WriteLine(item.Value); 20 btsnode = item.Right; 21 } 23 } 24 }
41.請寫出一段在多線程運行時有可能產生死鎖(不需要一定產生)的代碼。
1 int string a="aaaa",b="bbbb"; 2 public void Seta(){ 3 lock(b) 4 { 5 a="bbbb"; 6 } 7 } 8 public void Setb(){ 9 lock(a) 10 { 11 b="aaaa"; 12 } 13 } 14 15 Thread t = new Thread(Seta); 16 Thread.Sleep(5000); 17 t.Start(); 18 Thread t2 = new Thread(Setb); 19 Thread.Sleep(5000); 20 t2.Start();
42.假設你的編程語言提供這樣的非同步機制,把一個任務放在一個線程池中執行,當前線程繼續執行,直到調用這個任務取返回值的方法時才阻塞並等待任務完成拿到返回值。
現在有這樣一個場景,收到一個客戶端的訂單請求要檢查商品的庫存能否滿足,查詢該客戶按照當前的價格策略能否享受訂單的折扣才能接受訂單,而這兩個檢查都是非常耗時的操作。原來的代碼是這樣的:
1 public booleanprocessOrder(Order order) 2 { 3 if(!checkCustomerprice(order)) 4 return false; 5 if(!checkInventory(order)) 6 return false; 7 //訂單邏輯代碼不需要關註 8 return true; 9 }
請用上述的非同步機制改寫這段代碼,減小這個方法的響應延遲。
1 //這裡使用task 2 Task<bool> task = new Task<bool>(() => checkCustomerprice()); 3 task.Start(); 4 bool result = task.Result; 5 6 Task<bool> task2 = new Task<bool>(() => checkInventory()); 7 task2.Start(); 8 bool result2 = task2.Result; 9 10 if(result&&result2) 11 return true; 12 else 13 return false; 14 15 //自己研究寫的,不知道對不對,僅供參考
43.簡述private,protected,public,internal修飾符的訪問許可權。
public(公共的) 完全公開,訪問不受限制。
protected(保護的) 訪問僅限於包含類或從包含類派生的類型。該類內部和繼承類中可以訪問。
internal(內部的) 訪問僅限於當前程式集。在同一命名空間內可以訪問。
protected internal(內部保護的) 訪問僅限於從包含類派生的當前程式集或類型(待確定)。
private(私有的) 訪問僅限於包含類型。在類的內部才可以訪問
44.ado.net的五個主要對象。答案見第30題。
45.列舉asp.net頁面之間傳值的幾種方式。
答案:
Request.Form["SourceData2"].ToString();
Request.QueryString["parameter1"].ToString();
Context.Items["value"].ToString();還有cookie,session,application
46.C#中委托是什麼?事件是不是一種委托?事件和委托的關係。
答案:委托是指向事件的一種函數指針,把事件轉換為了一種引用類型的變數,可以讓其他函數調用。(純純的個人理解,網上有不同答案,我也不知道哪個是對的,建議找出版的資料。)
47.override(重寫)與重載overload的區別。
答案:override是重寫(覆蓋)了一個方法,以實現不同的功能。一般是用於子類在繼承父類時,重寫(重新實現)父類中的方法,
重載,一般是用於在一個類內實現若幹重載的方法,這些方法的名稱相同而參數形式不同。
48.MVC模式。(我並沒有完全GET到這個考點)
答案:MVC 模式代表 Model-View-Controller(模型-視圖-控制器) 模式。這種模式用於應用程式的分層開發。
49.什麼是裝箱和拆箱?
答案:值類型轉換為引用類型是裝箱,引用類型裝換為值類型是拆箱。
50.什麼叫應用程式域AppDomain。
答案: "域",就是範圍,環境,邊界的意思,那麼什麼是應用程式域,官方給出的是這樣的解釋:操作系統和運行庫環境通常會
在應用程式間提供某種形式的隔離.
應用程式域為安全性、可靠性、版本控制以及卸載程式集提供了隔離邊界。應用程式域通常由運行庫宿主創建,
運行庫宿主負責在運行應用程式之前引導公共語言運行庫。
應用程式域本質上就就是一種隔離,目的也就是使應用程式中運行的代碼不能直接訪問其他應用程式中的代碼或資
源如果你需要訪問其他應用程式中的對象時你就可以複製這些對象,或通過代理訪問這些對象.
51.堆和棧的區別。
答案:heap:是由malloc之類函數分配的空間所在地。地址是由低向高增長的,引用類型儲存在這。
stack:是自動分配變數,以及函數調用的時候所使用的一些空間。地址是由高向低減少的,值類型存儲在這。
52.GC是什麼,為什麼要有GC?
答案;垃圾回收器,如果沒有GC,那麼一個系統隨著運行時間的增長,占用記憶體會越來越大,如果我們沒有主動釋放的話。
53。值類型和引用類型的區別。
答案:
1. 值類型的數據存儲在記憶體的棧中;引用類型的數據存儲在記憶體的堆中,而記憶體單元中只存放堆中對象的
地址。
2. 值類型存取速度快,引用類型存取速度慢。
3. 值類型表示實際數據,引用類型表示指向存儲在記憶體堆中的數據的指針或引用
4. 值類型繼承自System.ValueType,引用類型繼承自System.Object
5. 棧的記憶體分配是自動釋放;而堆在.NET中會有GC來釋放
6. 值類型的變數直接存放實際的數據,而引用類型的變數存放的則是數據的地址,即對象的引用。
7. 值類型變數直接把變數的值保存在堆棧中,引用類型的變數把實際數據的地址保存在堆棧中,而實際數據則保存在堆中。
54.C#中的介面和類有什麼異同。
不同點:
不能直接實例化介面。
介面不包含方法的實現。
介面可以多繼承,類只能單繼承。
類定義可以在不同的源文件之間進行拆分。
相同點:
介面、類和結構都可以從多個介面繼承。
介面類似於抽象基類:繼承介面的任何非抽象類型都必須實現介面的所有成員。
介面和類都可以包含事件、索引器、屬性。
54.try{}里有一個return語句,那麼緊跟在這個try後面的finally{}里的code會不會被執行。什麼時候執行?
答案;會,在return 之前執行。
55.描述線程與進程的區別。
1.進程有自己獨立的地址空間;而線程共用進程的地址空間;
2.一個程式至少有一個進程,一個進程至少有一個線程;
3.線程是處理器調度的基本單位,但進程不是;
4.二者均可併發執行
56.什麼是反射?
答案:動態獲取程式集信息,動態獲取類的屬性和方法。
57.什麼是匿名方法?請寫一段代碼。
delegate(int i) { return i > 0; }
58.寫出幾種工作流產品或框架,並簡要的對比他們的差異。
59.寫出你所瞭解的設計模式,說一說使用設計模式帶來的好處,並嘗試用代碼寫出一個例子。
60.接受一個數組,找出兩個數的索引,這兩個數組相加之和等於指定的數字。找出一組即可,同一元素不可使用兩次。
比如:nums=[2,7,11,15],目標數字是9,因為nums【0】+nums【1】=9,所以返回【0,1】
答案:最簡單的方法是使用兩個for迴圈,此種方法不給出代碼了,下麵是第二種演算法,需要先進行排序,排序演算法略。
1 int[] getindex(int n) 2 { 3 int i=0,j=nums.length-1 4 while(i>j) 5 { 6 if(nums[i]+nums[j]==n)break; 7 else if(nums[i]+nums[j]>n)j--; 8 else i++; 9 } 10 int[] a=new int[]{i,j} 11 return a; 12 }
61.
SELECT * FROM 表 /*數據源*/ AS P PIVOT ( SUM(Amount/*行轉列後 列的值*/) FOR p.Month/*需要行轉列的列*/ IN (1,2,3,4/*列的值*/) ) AS T
附註:列轉行語句。測試語句
1 CREATE TABLE ProgrectDetail 2 ( 3 ProgrectName NVARCHAR(20), --工程名稱 4 OverseaSupply INT, --海外供應商供給數量 5 NativeSupply INT, --國內供應商供給數量 6 SouthSupply INT, --南方供應商供給數量 7 NorthSupply INT --北方供應商供給數量 8 ) 9 10 INSERT INTO ProgrectDetail 11 SELECT 'A', 100, 200, 50, 50 12 UNION ALL 13 SELECT 'B', 200, 300, 150, 150 14 UNION ALL 15 SELECT 'C', 159, 400, 20, 320 16 UNION ALL
1 SELECT P.ProgrectName,P.Supplier,P.SupplyNum 2 FROM 3 ( 4 SELECT ProgrectName, OverseaSupply, NativeSupply, 5 SouthSupply, NorthSupply 6 FROM ProgrectDetail 7 )T 8 UNPIVOT 9 ( 10 SupplyNum FOR Supplier IN 11 (OverseaSupply, NativeSupply, SouthSupply, NorthSupply ) 12 ) P
執行結果:
62.描述new有兩種用法
第一種:new Class():創建對象
第二種:覆蓋方法
public new XXXX(){}
63.傳入某個屬性的set方法的隱含參數的名稱是什麼?
value,它的類型和屬性所聲名的類型相同。
64.下麵的代碼中有什麼錯誤嗎?_______
1 using System; 2 class A 3 { 4 public virtual void F(){ 5 Console.WriteLine("A.F"); 6 } 7 } 8 abstract class B:A 9 { 10 public abstract override void F(); 11 12 //答:abstract override 是不可以一起修飾. 13 } // new public abstract void F();
65.net的錯誤處理機制是什麼?
答:.net錯誤處理機制採用try->catch->finally結構,發生錯誤時,層層上拋,直到找到匹配的Catch為止。
66.如何在C#中實現繼承?也就是繼承的格式
在類名後加上一個冒號,再加上基類的名稱。
67.描述一下C#中索引器的實現過程,是否只能根據數字進行索引?
答:不是。可以用