1. 程式人生 > 實用技巧 >C# 面試題 (一)

C# 面試題 (一)

前言

對C# 面試題筆試的總結。

面試題

【1】簡述 private,protected,public,internal修飾符的訪問許可權。

private:私有成員。在類的內部才可以訪問;
protected:保護成員。在該類的內部和繼承類中可以訪問;
public:公共成員。完全公開,沒有訪問許可權;
internal:在同一名稱空間內使用;

【2】寫一條sql 語句:取出A表中31到第40記錄(以自動增長的ID作為主鍵,ID可能不是連續的)。

//解法1:首先根據ID查詢前30條資料(預設正序),然後正序查詢不在這30條資料中的前10條資料。
select top 10 * from a where id not in (selct top 30 id from a);

//解法2:首先根據ID正序查詢前30條資料,求出ID最大的資料ID,再查詢ID>max(id),即獲取到要查詢的資料。
select top 10 * from a where id >(select max(id) from (select top 30 id from a) as a);

//解法3:使用row_number();
select * from (
  select *, row_number() over(order by id) as rid from a where 1=1;
) as temp where rid>=31 and rid <=40;

【3】C#中的委託是什麼?事件是不是一種委託?

委託可以把一個方法作為引數代入另一個方法。理解為指向一個函式的引用。
是,是一種特殊的委託

【4】三層架構分為哪三層?

資料訪問層、業務層、表示層;
資料訪問層:對資料進行增刪查改;
業務層:與表示層進行業務處理;
表示層:與使用者進行互動;

優點:分工明確、條理清晰、易於除錯,易於拓展;
缺點:增加成本;

【5】什麼是.NET反射?

動態獲取程式集資訊。

【6】值型別和引用型別的區別?

值型別:資料儲存分配在記憶體的棧上(由編譯器自動分配釋放);例如:結構(struct);
引用型別:資料儲存分配在記憶體的堆上(有程式設計師分配釋放);例如:類(class);

【7】索引的作用?它的優點缺點是什麼?

作用:協助快速查詢、更新資料表中的資料;

優點:
1.加快資料的檢索速度;
2.加快表與表之間的連線;
3.減少查詢中分組和排序的時間;
4.提高系統的效能;

缺點:
1.建立索引和維護索引隨著資料量越大所需的時間越多;
2.佔據物理空間大;
3.降低資料的維護速度;

【8】聯表更新SQL語句:表 A 欄位:ID、Name、Desc ,表 B 欄位:ID、Name、A_ID、AName,B表的A_Id 是A表的外來鍵,將A表的Name賦值給B表的AName。

update 表 B set B.AName=A.Name
from 表 B inner join 表 A on A.ID=B.A_ID